Sehr Umfangreiche Webseite zum Programmieren in C Perl CGI, Skripting, Linux, SystemprogrammierungCGI, HTTP-Response, HTTP-Request, HTTP, Content-Type Einführung in CGI | CGI, HTTP-Response, HTTP-Request, HTTP, Content-Type GGI Kurs Kapitel 1

Einführung in CGI          zurück zum Inhaltsverzeichnis

Warum soll ich mich mit CGI auskennen?

Zugegeben, der Großteil der Leser dieses Tutorials, werden wohl kaum jemals ein eigenes CGI-Skript schreiben. Und wozu soll man das Rad immer wieder neu erfinden. Im Internet finden Sie wohl kaum ein Problem, wofür nicht schon bereits ein CGI-Skript geschrieben wurde. Wozu sollte man also überhaupt lernen, eigene CGI-Skripte zu schreiben? Man kann doch einfach den Installationsanweisungen der CGI-Skripte folgen.

Was ist aber, wenn ein CGI-Skript eine von Ihnen gewünschte Funktion nicht enthält? Oder, wenn Sie ein Skript Ihren eigenen Bedürfnissen anpassen wollen? Genauso sieht es aus, wenn Sie Administrator eines Systems in einem Intranet sind. Sie sollten schon wissen, was eigentlich auf Ihrem System so alles passiert, wenn ein CGI-Skript aufgerufen wird.

Außerdem gibt es auch Programmierer, die sich Ihre Brötchen damit verdienen und sich die Mühe machen eigene CGI-Skripte zu erstellen.

Wer ist also die Zielperson dieses Tutorials?

Vorwiegend zielt dieses Tutorial auf den Anfänger ab. Aber auch Administratoren und einfach Interessierte, die wissen wollen, wie u.a. das Internet/Intranet funktioniert im Zusammenspiel mit einem Webserver.

Welche Vorkenntnisse sind von Vorteil?

Sollten Sie vorhaben, eigene CGI-Skripte zu erstellen, dann sind Kenntnisse in Perl nötig. Ein Tutorial, das hierfür völlig ausreichend ist, finden Sie ebenfalls auf dieser Webseite. Perl-Kenntnisse sind aber kein Vorraussetzung für dieses Tutorial, da der Großteil davon auf Theorie basiert.

Was ist CGI genau?

CGI steht für Common Gateway Interface und ist, wie man aus dem Namen schon herauslesen kann, eine einfache Schnittstelle, womit Sie auf einem Webserver eigene externe Prozesse starten können.

Verwenden wir mal ein einfaches Beispiel. Sie geben in Ihrem Webbrowser folgende URL ein ...

http://www.pronix.de/cgi-bin/hallo.cgi

Wenn Sie nun ENTER drücken, schickt der Webbrowser an den Server, auf den sich diese Webseite befindet, eine Anfrage. Genauer einen HTTP-Request. Diese Anfrage sieht etwa folgendermaßen aus ...

GET /cgi-bin/hallo.cgi
Host: www.pronix.de

Mit GET fordern wir praktisch das Skript hallo.cgi aus dem Verzeichnis cgi-bin an. Vorraussetzung, dass wir auch das Skript hallo.cgi starten und nicht den Text von hallo.cgi zurückbekommen, ist, das der Webserver so eingestellt ist, dass alle Dateien im Verzeichnisbaum /cgi-bin auch als CGI-Skripte erkannt werden. Wir kommen noch auf die Einstellung des Webservers zu sprechen.

Jetzt startet der Server das CGI-Skript hallo.cgi und das Skript macht nun seine Arbeit, wofür es geschrieben wurde. Das CGI-Skript ist nun ein eigener externer Prozess auf dem Server. Falls das Skript also nun etwas an dem Server übergeben will, wird dies jetzt gemacht.

Als nächstes sendet der Web-Server einen Antwort-Header an den Webbrowser, den sogenannten HTTP-Response. Dieser Header beinhaltet Informationen, wie das verwendetete Kommunikationsprotokol, die Uhrzeit und das Datum der Serverantwort, Zeit der letzten Änderung der Datei, die verwendete Serversoftware mit Versionsnummer und noch einiges mehr (genaueres später). Dieser Anwort-Header hat in etwa folgendes aussehen ...

HTTP/1.1 200 OK
Date: Wed, 30 Oct 2002 01:21:22 GMT
Server: Apache/1.3.14
Last Modified: Tue, 29 Oct 2002 22:21:19 GMT
Content-Length: 2232
Content-Type: text/html

Nach dem der Server dem Webbrowser den Header geschickt hat, sendet dieser eine Leerzeile, womit angezeigt wird, dass jetzt die angeforderten Daten an den Browser gesendet werden. In welcher Form diese Daten an den Webbrowser geschickt werden, steht in Content-Type. In diesem Beispiel handelt es sich um eine einfache HTML-Datei.

Hierzu sehen Sie diesen Vorgang noch einmal bildlich dargestellt ...

Zusammenfassung

Fassen wir den Vorgang, wie ein CGI-Skript aufgerufen wird, nochmals in den einzelnen Schritten zusammen ...

  1. Der Webbrowser schickt an dem Web-Server eine Anfrage (HTTP-Request).
  2. Der Server startet das CGI-Skript.
  3. Das CGI-Skript gibt über die Standardausgabe etwas an den Web-Server.
  4. Der Web-Server schickt dem Webbrowser einen Antwort-Header (HTTP-Response) und das entsprechende Dokument. Am Ende des Antwort-Headers befindet sich dabei eine Leerzeile.

Bezüglich dieser Einführung, dürfte Sie wohl speziell interessieren, welche Informationen der Webbrowser an den Server schickt (HTTP-Request) und welche Antwort der Webbrowser vom Web-Server bekommt. All dies Erfahren Sie zum Kapitel des HTTP-Protokols (HTTP = HyperText Transfer Protocol).