Advanced   Java   Services Common Gateway Interface (CGI) Back Next Up Home


CGI Common Gateway Interface

Mit Konsolkommandos wie etwa ping oder ipconfig kann man eine bestehende Verbindung zu einem anderen Rechner (in einem Intranet oder über das Internet) verifizieren. Diese Verbindung wird fast immer auf der Basis von TCP/IP aufgebaut, einem Protokoll, das sicherstellt, daß eine Datenübertragung möglich ist. Damit allein kann aber ein Client wie etwa ein Browser noch keine HTML-Dokumente anfordern um sie darzustellen. Dazu muß auf dem Server eine zusätzliche Software installiert sein, ein sogenannter Webserver. Dieser kann solche Anfrage entgegennehmen und beantworten. Es gibt aber auch Anfragen, bei denen es nicht damit getan ist, eine fertige HTML-Datei zu versenden. So müssen etwa Berechnungen vorgenommen werden oder Datenbestände durchsucht und aufbereitet werden um eine Clientanfrage zu beantworten. Solche Anfragen delegiert der WebServer an Programme auf dem Server, die dann ihre Ergebnisse wiederum an den WebServer mitteilen, der sie schließlich an den Client schickt. Damit verschiedenste Webserver mit verchiedensten Programmen zusammenarbeiten können wurde eine Schnittstelle entwickelt über die sich WebServer und Programme verständigen: CGI.

cgi.jpg

Die CGI-Schnittstelle besteht hauptsächlich aus einer Reihe von Umgebungsvariablen die vom WebServer bei der Installation gesetzt werden. Kommt eine Clientanfrage an ein Programm, so werden diese Variablen entsprechend neu gesetzt und das Programm gestartet. Dieses wiederum liest dann die Umgebungsvariablen aus und generiert eine Antwort, die dann der Webserver an den Client schickt.


CGI Programmiersprachen

Jede Programmiersprache, mit der man Umgebungsvariable auslesen kann, eignet sich für CGI und das können fast alle. Scriptsprachen wie Unix/Linux Shellscripts, Perl und PHP und natürlich auch streng typiierte Sprachen wie C/C++, Java, C# usw.


CGI Umgebungsvariablen
CGI-Umgebungsvariable CGI-Bedeutung CGI-Beispiele
AUTH_TYPE Die Authentifizierungsmethode, mit der ein Benutzer überprüft wird Basic
CONTENT_LENGTH Die Länge der Daten in byte, die ein Client geschickt hat und die über stdin zur Verfügung stehen 7715
CONTENT_TYPE Der MIME-Typ der Daten text/html
DOCUMENT_ROOT Das Verzeichnis für WEB-Dokumente /htdocs
GATEWAY_INTERFACE Die Versionsnummer der CGI-Schnittstelle  
HTTP_ACCEPT Eine Liste der MIME-Typen, die der Client darstellen kann text/html, text/xml, image/jpg
HTTP_REFERER Der URL des Dokumentes, auf das der Client zugegriffen hat, bevor er das CGI-Programm rief http://192.168.43.5/AlleServlets.html
HTTP_USER_AGENT Der vom Client für die Abfrage verwendete Browser Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax)
QUERY_STRING Der Datenstring, der com Client nach einem "?" als Trennzeichen an den URL angehängt werden kann http://www.google.com/search?hl=en&q=servlet&btnG=Google+Search
REMOTE_ADDR Die IP-Adresse des Client-Rechners 192.168.41.5
REMOTE_HOST Der Hostname oder die IP-Adresse des Client 192.168.41.5
REMOTE_USER Der authentifizierte Name des Client wzlbrmpft
REQUEST_METHOD Die Methode, mit der die Anforderung versendet wurde POST
SCRIPT_NAME Der virtuelle Pfad des CGI-Programms /cgi-bin/program.pl
SERVER_NAME Der Hostname oder die IP-Adresse des Servers www.wzlbrmpft.com
SERVER_PORT Die Portnummer des Host, über die die Anfrage den Server erreichte 80
SERVER_PROTOCOL Das Protokoll, das über den SERVER_PORT abgewickelt wird HTTP/1.1
SERVER_SOFTWARE Der Name und die Versionsnummer des WEB-Servers, der den Client bedient Apache Tomcat/5.0.16

top Back Next Up Home