previous up gif index next
Previous: Die HTML-Syntax für Up: Forms Next: Wo sind die

Die Funktionsweise von CGI

   Unter einem CGI-Programm versteht man ein Programm, welches auf dem Server ausgeführt wird, wenn ein Client einen GET- oder einen POST-Request an den Browser schickt. Der URI in jenem Request muß dabei auf das gewünschte Programm zeigen, welches die Daten verarbeiten soll.

Die Weiterleitung der Daten an das Programm kann dann je nach Methode auf eine unterschiedliche Art vonstatten gehen:

GET  :
Bei dieser Methode werden dem Programm die Daten in Form der Environment-Variable QUERY_STRING  angeboten. Diese Eingabe ist noch kodiert, d.h. alle Sonderzeichen sind durch Escape-Sequenzen beschrieben.

POST  :
Wenn der Request auf diese Art und Weise getätigt wird, so wird dem Programm die kodierte Eingabe per stdin übergeben. Dabei schickt der Server allerdings kein EOF, weshalb man noch die Environment-Variable CONTENT_LENGTH  benutzen muß, um die Länge zu bestimmen.

Egal, welche der oben genannten Methoden Verwendung findet, das Programm muß nun eine Ausgabe liefern, und zwar ein legales HTTP-Objekt, sei es nun eine HTML-Seite oder eine Grafik. Dazu muß es auf die Standard-Ausgabe stdout zuerst den Header schreiben, dann eine Leerzeile und dann die eigentlichen Daten.

Beim Header ist es üblich, nur die Content-Type-Zeile zu schreiben (welche auch zwingend ist), damit der Typ des Dokuments vom Client ermittelt werden kann.

Nach der Leerzeile kommen dann die eigentlichen Daten, also im Falle eines Content-Types von text/html die HTML-Seite. Dies wird dann an den Client gesendet.

Ein Beispiel hierzu ist:

              Content-type: text/html

              <HTML><HEAD>
              <TITLE>output of HTML from CGI script</TITLE>
              </HEAD><BODY>
              <H1>Sample output</H1>
              What do you thing of <STRONG>this?</STRONG>
              </BODY></HTML>

Im obigen Beispiel der Kulturbox (ein Berliner Kunst- und Künstler-Server, der auch Informationen über Berlin enthält) kann man z. B. auf diese Weise Betten buchen.

Forms sind übrigens nicht die einzige Anwendung von CGI-Programmen . Wie im Abschnitt über die URIs schon erwähnt wurde, kann man auch eine Suchanfrage in einen GET-Request einbinden, indem man als Bestandteil des URI noch ein ,, ?`` einbaut und dahinter die Suchanfrage formuliert. Dies funktioniert dann auf die gleiche Weise, wie oben bei den Forms beschrieben, nämlich über die Environment-Variable QUERY_STRING .



previous up gif index next
Previous: Die HTML-Syntax für Up: Forms Next: Wo sind die



Christian Scholz
Sat Sep 23 15:50:47 MESZ 1995