CGI-Umgebungsvariablen |
|
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.
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 ausgefü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) |
weiter: | Server Side Includes in HTML |
zurück: | CGI-Scripts auf öffentlichem WWW-Server installieren |