Umgebungsvariablen ermitteln
Perl stellt Umgebungsvariablen im %ENV zur Verfügung.
Nachfolgend ein kleines Programm mit dessen Hilfe die Umgebungsvariablen auf einem Webserver ermittelt werden können.
#!/usr/bin/perl
use strict;
print "Content-type: text/html\n\n";
print qq~<html>
<head><title>printenv</title></head>
<body>
<pre>~;
print qq~PerlVersion: $]
Umgebungsvariablen:\n~;
my ($key,$value);
while ( ($key,$value) = each %ENV ) {
print qq~$key : $value\n~;
}
print qq~</pre></body></html>~;
exit;
Das Programm im cgi-bin Verzeichnis des Webservers z.B. als printenv.pl abspeichern und anschließend im Browser aufrufen: http://beispiel.tld/cgi-bin/printenv.pl.
Übersicht CGI-Umgebungsvariablen
Standardvariablen
SERVER_SOFTWARE |
Der Name und die Versionsnummer der verwendeten Serversoftware.
|
SERVER_NAME |
Der Hostname der Website. |
GATEWAY_INTERFACE |
Die Versionsnummer des CGI, welches der Webserver verwendet.
|
SERVER_PROTOCOL |
Der Name und die Versionsnummer des verwendeten Protokolls. |
REQUEST_METHOD |
Die HTTP-Methode der Client-Anfrage. |
PATH_INFO |
Pfadinformation (URL) |
PATH_TRANSLATED |
Pfadinformation (Dateipfad) |
SCRIPT_NAME |
URL-Pfad des Skripts, das aufgerufen wurde. |
QUERY_STRING | Die Parameter, die an ein CGI-Skript gesendet wurden. |
REMOTE_HOST | Der Hostname des Client- bzw. Proxy-Rechners.
Der Rechner muss einen DNS-Eintrag besitzen und HostNameLookup aktiviert sein. |
REMOTE_ADDR |
Die IP-Adresse des Client- bzw. Proxy-Rechners. |
AUTH_TYPE |
Die Art des verwendeten Authentifizierungsverfahrens. |
REMOTE_USER |
Die User-ID, die bei der Authentifizierung verwendet wurde. |
REMOTE_IDENT | Das Ergebnis der IDENT-Anfrage an den Client. Wird nur gesetzt, wenn IdentyCheck aktiviert ist. |
CONTENT_TYPE |
Diese Variable enthält den MIME-Typ, wenn eine Anfrage (POST, PUT) weitere Daten enthält. |
CONTENT_LENGTH |
Die Länge der Daten in Bytes, wenn eine Anfrage weitere Daten enthält. |
Headervariablen
HTTP_ACCEPT |
Eine Liste der MIME-Typen, die der Client verarbeiten kann. |
HTTP_ACCEPT_CHARSET |
Eine Liste der Zeichensätze, die der Client verarbeiten kann. |
HTTP_ACCEPT_ENCODING |
Eine Liste der Kodierungen, die der Client verarbeiten kann. |
HTTP_ACCEPT_LANGUAGE |
Die Sprachen, die der Client verarbeiten (verstehen) kann. |
HTTP_AUTHORIZATION |
Die Daten einer WWW-Authentifzierung |
HTTP_CACHE_CONTROL |
Enthält Informationen, ob und wie ein Objekt gespeichert werden kann und ob ein Cache ein gespeichertes Objekt liefern darf. |
HTTP_COOKIE |
Cookie, sofern akzeptiert. |
HTTP_FROM |
Die E-Mail-Adresse des Clients. Sie wird aber nur in sehr wenigen Fällen übermittelt. |
HTTP_HOST |
Der Name des Webservers, den der Client angesprochen hat. |
HTTP_PRAGMA |
HTTP/1.0-Variante von HTTP_CACHE_CONTROL |
HTTP_REFERER |
Die URL der Seite, von der aus der Link verfolgt wurde. |
HTTP_USER_AGENT |
Der Name und die Versionsnummers des Clients. |
HTTP_VIA |
Informationen über den Proxy, über den die Anfrage gestellt wurde. |
HTTP_FORWARDED |
HTTP/1.0-Variante von HTTP_VIA. |
Zusätzliche Variablen
Diese zusätzlichen Variablen sind server-abhängig: Die folgende Tabelle bezieht sich auf den Apache Webserver.
DATE_LOCAL |
Lokales Datum und Uhrzeit. Lokal bezieht sich meist auf den geographischen Serverstandort ;). |
DATE_GMT |
Datum und Uhrzeit in GMT (Greenwich Mean Time). |
DOCUMENT_NAME |
Der Dateiname des angeforderten Dokuments ohne zusätzliche Pfadangabe. |
DOCUMENT_PATH_INFO |
Die Pfadangabe zum angeforderten Dokument. |
DOCUMENT_ROOT |
Der Pfad, der als DocumentRoot gesetzt wurde. |
DOCUMENT_URI |
URI des angeforderten Dokuments. |
LAST_MODIFIED |
Datum und Uhrzeit der letzten Änderung des angeforderten Dokuments. |
PATH |
Entspricht der Shell-Variablen PATH. |
REMOTE_PORT |
Der auf der Client-Seite verwendete Port. |
REQUEST_URI |
URL der angeforderten Datei. |
SCRIPT_NAME |
Relativer Dateipfad des aufgerufenen Scripts. |
SCRIPT_FILENAME |
Absoluter Dateipfad des aufgerufenen Scripts. |
SCRIPT_URI |
Absolute URL incl. Hostname des aufgerufenen Scripts. |
SERVER_ADMIN |
Die E-Mail-Adresse des ServerAdmin, sofern gesetzt. |
USER_NAME |
Der Name des Users, der den Apache gestartet hat. Wird vom Apache-Include-Modul gesetzt. |
Siehe auch