CGI-Umgebungsvariablen ermitteln

Veröffentlicht von Thomas Fahle am (Permalink)

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_STRINGDie Parameter, die an ein CGI-Skript gesendet wurden.
REMOTE_HOSTDer 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_IDENTDas 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

Weitere Posts