Common Gateway Interface (CGI)


Interaktion im Web

Browser Erweiterungen

Common Gateway Interface (CGI)

CGI Architektur

Integration in Server

Server APIs

CGI Konzepte

Einleitung

Was ist das CGI ?

Common Gateway Interface

Wozu kann das CGI verwendet werden ?

Wie sehen CGI Programme aus ?

Verbreitete Programmiersprachen

Interpretierte Sprachen bevorzugt.

Wer hat CGI entwickelt ?

Autoren der ersten WWW-Server

Aktuelle Version CGI/1.1.

Benutzung

Wie werden die Informationen zwischen dem WWW-Client, WWW-Server und dem CGI Program ausgetauscht ?

CGI Architektur

Auswahl des CGI Programms in einem URL.

http://server-ip/path/cgi-prog/path-info?query-string

Hinweis: keine Kommandozeilenparameter an das CGI Program

D.h. cgi-prog arg1 arg2 geht nicht

Wie wird Information vom Server empfangen ?

Empfang auf 3 Arten:

Query-String Methode

http://server-ip/path/cgi-prog/path-info?query-string

query-string in Umgebungsvariable QUERY_STRING

Path-Info Methode

http://server-ip/path/cgi-prog/path-info?query-string

/path-info in Umgebungsvariable PATH_INFO

Stdin -Datei Methode

Wird per Pipe gesendet und von Stdin gelesen

Wie wird Information zum Server gesendet ?

Rückgabe durch Stdout "Datei" im richtigen Format: HTML

MIME Inhaltstyp

Content-Type: m-type/m-stype

Beispiele

Ortsangabe

Location: ftp://host/dir/dateix.txt

Der Client erzeugt eine FTP-Verbindung

Wie wird Information vom Client aufbereitet ?

Formulare: HTML <FORM> Keyword

zwei Parameter

Daten des Formulars

Grundaufbau CGI Program

  1. Feststellen der Übertragungsmethode
    Ansehen der Umgebungsvariablen REQUEST_METHOD.
    Mögliche Werte: GET, POST, HEAD

  2. Lesen von CONTENT_LENGTH Bytes von QUERY_STRING oder Stdin.

  3. URL Dekodierung der Zeichenkette.

  4. Aufspaltung der Zeichenkette entlang &.

  5. Aufspaltung der Paare name=content entlang =.

  6. Verwenden der so aufbereiteten Informationen.

Spezifikation

CGI 1.0 oder 1.1:

Alle Spezifikationen der Version 1.1 sollen auch von zukünfigen Erweiterungen erfüllt werden.


© Universität Mannheim, Rechenzentrum, 1998/1999.