Umgebungsinformationen
Wie bereits im Einführungs-Thema erklärt, werden vom Webserver über die CGI-Schnittstelle
dem Perl-Interpreter Umgebungsinformationen bereitgestellt. Dazu zählen Server-, Skript-, Remote-, Anfrage- und HTTP-Informationen,
welche wir innerhalb dieses Themas noch genauer erklären werden. Alle Umgebungsvariablen können über den Hash %ENV
abgerufen werden (bzw. in der Form von $ENV{'VARIABLEN_NAME'}
für den Wert einer einzelnen Umgebungsvariable).
Server-Informationen
Server-Informationen beginnen mit dem Variablennamen SERVER_
und enthalten Netzwerk-, Software- und
Administrations-Informationen in Bezug auf den Server. Die folgende Tabelle zeigt eine Übersicht über Server-Informationen:
SERVER_NAME | Hostname des Servers. |
---|---|
SERVER_ADDR | IP-Adresse des Servers. |
SERVER_PORT | Port des Webservers (z. B. 80 für HTTP oder 443 für HTTPS). |
SERVER_PROTOCOL | Verwendetes Protokoll und Protokoll-Version (z. B. HTTP/1.1). |
SERVER_ADMIN | Name und / oder E-Mail-Adresse des eingetragenen Server-Administrators. |
SERVER_SOFTWARE | Verwendete Webserver-Software und dessen Version. |
Das folgende Beispiel gibt einige der in der Tabelle enthaltenen Variablen aus:
#!/usr/bin/perl -w use strict; print <<END; Content-Type: text/html;charset=UTF-8 <!Doctype html> <html> <head> <title>Server-Informationen - Perl Code-Beispiel</title> <meta charset="utf-8" /> <meta name="robots" content="noindex,nofollow" /> <meta name="publisher" content="Homepage-Webhilfe" /> </head> <body> <dl> <dt>SERVER_NAME</dt> <dd>$ENV{'SERVER_NAME'}</dd> <dt>SERVER_ADDR</dt> <dd>$ENV{'SERVER_ADDR'}</dd> <dt>SERVER_PORT</dt> <dd>$ENV{'SERVER_PORT'}</dd> <dt>SERVER_PROTOCOL</dt> <dd>$ENV{'SERVER_PROTOCOL'}</dd> </dl> </body> </html> END
Skript-Informationen
Mit den Skript-Informationen ist es möglich, den absoluten realen Pfad (also den Pfad auf dem Server-Dateisystem, SCRIPT_FILENAME
)
und den Pfad auf der Website (auch als HTTP-Pfad bezeichnet, SCRIPT_NAME
) abzurufen. Aus Sicherheitsgründen zeigen
wir im folgenden Beispiel nur den HTTP-Pfad an:
#!/usr/bin/perl -w use strict; print <<END; Content-Type: text/html;charset=UTF-8 <!Doctype html> <html> <head> <title>Skript-Informationen - Perl Code-Beispiel</title> <meta charset="utf-8" /> <meta name="robots" content="noindex,nofollow" /> <meta name="publisher" content="Homepage-Webhilfe" /> </head> <body> <dl> <dt>SCRIPT_NAME</dt> <dd>$ENV{'SCRIPT_NAME'}</dd> </dl> </body> </html> END
Remote-Informationen
Remote-Informationen geben Auskunft über den „entfernten Computer“, also den Computer, der die Website aufgerufen hat. In der folgenden Tabelle sehen Sie die verfügbaren Variablen und deren Bedeutung. Im darunter stehenden Beispielcode werden die meisten der in der Tabelle aufgelisteten Variablen ausgegeben.
REMOTE_HOST | Hostname des entfernten Computers (kann u. U. leer sein). |
---|---|
REMOTE_ADDR | IP-Adresse des entfernten Computers. |
REMOTE_PORT | Lokaler Port des entfernten Computers (meistens zwischen 32768 - 65535). |
REMOTE_USER | Benutzername des auf dem Server angemeldeten Benutzers des entfernten Computers (nur gesetzt, wenn die Seite in einem geschützten Bereich liegt). |
#!/usr/bin/perl -w use strict; print <<END; Content-Type: text/html;charset=UTF-8 <!Doctype html> <html> <head> <title>Remote-Informationen - Perl Code-Beispiel</title> <meta charset="utf-8" /> <meta name="robots" content="noindex,nofollow" /> <meta name="publisher" content="Homepage-Webhilfe" /> </head> <body> <dl> <dt>REMOTE_HOST</dt> <dd>$ENV{'REMOTE_HOST'}</dd> <dt>REMOTE_ADDR</dt> <dd>$ENV{'REMOTE_ADDR'}</dd> <dt>REMOTE_PORT</dt> <dd>$ENV{'REMOTE_PORT'}</dd> </dl> </body> </html> END
Anfrage-Informationen
Informationen über die Anfrage befinden sich in den Variablen REQUEST_METHOD
und REQUEST_URI
.
REQUEST_URI
enthält die sogenannte URI, welche aus Pfad (mit Dateiname), Anfrage-Daten (URL-Parameter) und einem
Fragment (normalerweise dme Anker) bestehen. REQUEST_METHOD
enthält die Methode, mit welcher die Seite aufgerufen
wurde. Dabei handelt es sich normalerweise um GET oder bei der Übertragung von Formulardaten auch oft um POST.
#!/usr/bin/perl -w use strict; print <<END; Content-Type: text/html;charset=UTF-8 <!Doctype html> <html> <head> <title>Anfrage-Informationen - Perl Code-Beispiel</title> <meta charset="utf-8" /> <meta name="robots" content="noindex,nofollow" /> <meta name="publisher" content="Homepage-Webhilfe" /> </head> <body> <dl> <dt>REQUEST_METHOD</dt> <dd>$ENV{'REQUEST_METHOD'}</dd> <dt>REQUEST_URI</dt> <dd>$ENV{'REQUEST_URI'}</dd> </dl> </body> </html> END
HTTP-Informationen
Umgebungsvariablen zu HTTP-Informationen beginnen mit HTTP_
. Die darin enthaltenen Informationen kommen größtenteils
aus dem HTTP-Anfrage-Header. Die folgende Tabelle listet die verschiedenen HTTP-Umgebungsinformationen auf:
HTTP_HOST | Hostname oder IP-Adresse der angefragten Seite. |
---|---|
HTTP_REFERER | URI der zuvor aufgerufenen Webseite (kann zur Ermittlung des Besucher-Verlaufs verwendet werden). |
HTTP_USER_AGENT | User-Agent des entfernten Computers (daraus kann zumeist der Browser und das Betriebssystem ermittelt werden). |
Und hier auch noch ein Beispiel dazu:
#!/usr/bin/perl -w use strict; print <<END; Content-Type: text/html;charset=UTF-8 <!Doctype html> <html> <head> <title>HTTP-Informationen - Perl Code-Beispiel</title> <meta charset="utf-8" /> <meta name="robots" content="noindex,nofollow" /> <meta name="publisher" content="Homepage-Webhilfe" /> </head> <body> <dl> <dt>HTTP_HOST</dt> <dd>$ENV{'HTTP_HOST'}</dd> <dt>HTTP_REFERER</dt> <dd>$ENV{'HTTP_REFERER'}</dd> <dt>HTTP_USER_AGENT</dt> <dd>$ENV{'HTTP_USER_AGENT'}</dd> </dl> </body> </html> END