Homepage-Webhilfe Event-Banner

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 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
Vorschau

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
Vorschau

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
Vorschau

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
Vorschau

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
Vorschau
Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen OK