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. |
Jetzt kommentieren