Allgemeines zu CGI-Umgebungsvariablen
Zur sogenannten "CGI-Schnittstelle" gehören auch die CGI-Umgebungsvariablen. Ein installierter WWW-Server stellt solche Variablen auf Betriebssystemebene zur Verfügung. Bei jedem Aufruf eines CGI-Scripts füllt er einige dieser Variablen mit Informationen. Das CGI-Script kann den Inhalt dieser Variablen auslesen und für eigene Zwecke nutzen. Das CGI-Script kann einige dieser Variablen auch selbst mit Inhalt füllen oder einen dort gespeicherten Inhalt ändern. CGI-Umgebungsvariablen existieren unabhängig von den Variablen, die Sie in einem CGI-Script selbst definieren können.
In CGI-Umgebungsvariablen ist während der Ausführung eines CGI-Scripts beispielsweise der Namen des Server-Rechners gespeichert, oder Information zum verwendeten Browser des Anwenders, der den Aufruf des CGI-Programms verursacht hat. Wenn zum Aufruf des CGI-Scripts aus einem Formular die GET-Methode verwendet wurde, stehen die Daten, die der Anwender in das Formular eingegeben hat, in einer CGI-Umgebungsvariablen (siehe auch den Abschnitt Formulardaten übertragen mit GET oder POST).
Um CGI-Umgebungsvariablen aus einem CGI-Programm heraus zu nutzen, müssen Sie in der verwendeten Programmiersprache die Techniken zum Auslesen von Umgebungsvariablen nutzen. So können Sie in Perl über $ENV{'UMGEBUNGS_VARIABLENNAME'} auf CGI-Umgebungsvariablen zugreifen. Mit einer Anweisung wie print $ENV{'SERVER_NAME'}; können Sie beispielsweise den Namen des Servers ausgeben. Da die Umgebungsvariablen aus Sicht von Perl in einem Hash gespeichert sind, können Sie mit einer Anweisung wie print %ENV alle verfügbaren Umgebungsvariablen ausgeben.
Übersicht der CGI-Umgebungsvariablen
Die folgende Liste ist nach Variablennamen alphabetisch sortiert.
Variablenname |
Erläuterung |
CONTENT_LENGTH |
Enthält die Anzahl der Zeichen, die beim Aufruf des CGI-Scripts über die POST-Methode übergeben wurden. Wenn das CGI-Script beispielsweise beim Absenden eines HTML-Formulars aufgerufen wurde und dort als Übertragungsmethode POST angegeben ist, steht in dieser Umgebungsvariablen, wie viele Zeichen das Script von der Standardeingabe lesen muß, um die übermittelten Formulardaten vollständig einzulesen. |
CONTENT_TYPE |
Enthält beim Aufruf über die POST-Methode den Mime-Type der übergebenen Daten. Wenn das CGI-Script beispielsweise beim Absenden eines HTML-Formulars aufgerufen wurde und dort als Übertragungsmethode POST angegeben ist, steht in dieser Umgebungsvariablen der für HTML-Formulare typische Mime-Type application/x-www-form-urlencoded. |
GATEWAY_INTERFACE |
Enthält die Version der CGI-Schnittstelle, die von dem installierten Server unterstützt wird, z.B. CGI/1.1, wenn die gegenwärtig übliche Version 1.1 der Schnittstellendefinition unterstützt wird. |
HTTP_ACCEPT |
Enthält die Liste der Mime-Types, die der aufrufende WWW-Browser akzeptiert. Die Angabe */* bedeutet: der WWW-Browser akzeptiert alles. |
HTTP_REFERER |
Enthält die URL-Adresse der WWW-Seite, von der aus das CGI-Script aufgerufen wurde. Der Wert wird jedoch nicht von allen WWW-Browsern übermittelt, ist also nicht in jedem Fall verfügbar. |
HTTP_USER_AGENT |
Enthält Produkt- und Versionsinformationen zum aufrufenden WWW-Browser. Ein CGI-Script kann auf diese Weise ermitteln, welchen Browser ein Anwender verwendet. |
PATH_INFO |
Enthält spezielle Pfadinformationen, wenn das Script über die GET-Methode aufgerufen wurde, und zwar relativ zu den im WWW-Server eingestellten Root-Verzeichnissen. |
PATH_TRANSLATED |
Enthält spezielle Pfadinformationen, wenn das Script über die GET-Methode aufgerufen wurde - im Unterschied zu PATH_INFO jedoch Pfadangaben entsprechend der Verzeichnisstruktur des Server-Rechners. |
QUERY_STRING |
Enthält beim Aufruf über die GET-Methode eine Zeichenkette mit Daten, die dem Script übergeben wurden. Wenn ein Anwender ein HTML-Formular ausgefüllt hat, bei dessen Absenden das CGI-Script aufgerufen wurde, stehen in dieser Umgebungsvariablen die aufsgefüllten Formulardaten. Die Daten sind nach den Regeln des Mime-Types application/x-www-form-urlencoded kodiert. |
REMOTE_ADDR |
Enthält die IP-Adresse des Server-Rechners, über den das CGI-Script aufgerufen wurde, wenn es ein anderer Server ist als der, auf dem das CGI-Script liegt. Dieser Wert wird jedoch nicht in allen Fällen gesetzt. |
REMOTE_HOST |
Enthält die Domain-Adresse des Server-Rechners, über den das CGI-Script aufgerufen wurde, wenn es ein anderer Server ist als der, auf dem das CGI-Script liegt. Dieser Wert wird jedoch nicht in allen Fällen gesetzt. |
REMOTE_IDENT |
Enthält Protokollinformation, wenn auf dem Server das Protokoll ident für geschützte Zugriffe läuft. |
REMOTE_USER |
Enthält den Benutzernamen, der das CGI-Script aufgerufen hat. Dieser Wert wird nur gesetzt, wenn die Server-Authentifizierung eingeschaltet ist. |
REQUEST_METHOD |
Enthält den HTTP-Befehl, mit dem das CGI-Programm aufgerufen wurde. Entweder GET oder POST. Ein CGI-Script kann beispielsweise diese Variable auslesen und danach entscheiden, wie es Formulardaten einlesen kann: entweder von der Standardeingabe (bei Methode POST) oder aus der Umgebungsvariablen QUERY_STRING (bei Methode GET). |
SCRIPT_NAME |
Enthält die URL-Adresse des aufgerufenen CGI-Scripts realtiv zur Domain-Adresse, also z.B. /cgi-bin/search.pl. |
SERVER_NAME |
Enthält den Namen des Servers (z.B. www.xy.com) oder die IP-Adresse (z.B. 127.0.0.1). |
SERVER_PORT |
Enthält die Portnummer, die für den WWW-Server eingerichtet wurde. Normalerweise ist dies für WWW-Server die Nummer 80. |
SERVER_PROTOCOL |
Enthält die Version des HTTP-Protokolls, das der installierte WWW-Server unterstützt, z.B. HTTP/1.0, wenn die gegenwärtig übliche Version 1.0 des HTTP-Protokolls unterstützt wird. |
SERVER_SOFTWARE |
Enthält die Produktbezeichnung der installierten Server-Software, z.B. OmniHTTPd/2.0a1 (Win32; i386) |
© 1997 Stefan Münz, s.muenz@euromail.com