LOG IN: 17 (1997) Heft 3/4
Aktuelles Lexikon
CGI
Common Gateway Interface
von Stefan Münz
Das Common Gateway Interface (Allgemeine Vermittlungsrechner-Schnittstelle) bietet die
Möglichkeit, Programme im WWW bereitzustellen, die von HTML-Dateien aus aufgerufen werden
können, und die selbst HTML-Code erzeugen und an einen WWW-Browser senden.
Wenn Sie im WWW eine Suchdatenbank benutzen, Pizza oder Büstenhalter bestellen, sich
in ein Gästebuch eintragen oder einen Zähler mit Zugriffszahlen sehen, dann steckt CGI
oder eine CGI vergleichbare Schnittstelle dahinter.
CGI besteht aus Programmen, die auf einem Server-Rechner im Internet liegen und bei Aufruf
bestimmte Daten verarbeiten. Die Datenverarbeitung geschieht auf dem Server-Rechner.
CGI-Programme können auf dem Server-Rechner Daten speichern (zum Beispiel, wie oft auf
eine WWW-Seite zugegriffen wurde). Bei entsprechendem Aufruf kann ein CGI-Programm
gespeicherte Daten auslesen und daraus HTML-Code generieren. Dieser dynamisch
erzeugte HTML-Code wird an den aufrufenden WWW-Browser eines Anwenders übertragen und
kann dort individuelle Daten in HTML-Form anzeigen, zum Beispiel den aktuellen
Zugriffszählerstand einer WWW-Seite oder die bisherigen Einträge in einem Gästebuch.
CGI-Schnittstelle und Programmiersprache
Die sogenannte CGI-Schnittstelle muß von der WWW-Server-Software unterstützt werden. Aus
Sicht des Mieters von Speicherplatz auf einem WWW-Server steht die CGI-Schnittstelle in
Form eines bestimmten Verzeichnisses zur Verfügung. Meistens hat dieses Verzeichnis den
Namen cgi-bin. In diesem Verzeichnis können Programme abgelegt werden, die CGI-Aufgaben
übernehmen. Bei preiswerten oder gar kostenlosen Homepage-Vermittlern wie CompuServe, AOL
usw. steht normalerweise keine CGI-Schnittstelle zur Verfügung.
Es gibt keine Vorschriften dafür, in welcher Programmiersprache ein CGI-Programm
geschrieben ist. Damit das Programm auf dem Server-Rechner ausführbar ist, muß es
entweder für die Betriebssystem-Umgebung des Servers als ausführbares Programm
kompiliert worden sein oder es muß auf dem Server ein Laufzeit-Interpreter vorhanden
sein, der das Programm ausführt. Wenn der Server zum Beispiel ein UNIX-Rechner ist,
führt er C-Programme aus, die mit einem UNIX-C-Compiler zu einer ausführbaren Datei
kompiliert wurden. Wenn der Server ein Windows-NT-Rechner ist, können CGI-Scripts auch
EXE-Dateien sein, die mit 32-Bit-Compilern für C, PASCAL, Visual BASIC usw. erzeugt
wurden. Die meisten heutigen CGI-Programme sind als UNIX-Shell verfaßt oder in PERL
geschrieben. Die UNIX-Shell wird von allen UNIX-Rechnern interpretiert. Für PERL muß ein
entsprechender Interpreter installiert sein.
Die Abbildung (unten) zeigt eine typische CGI-Situation, wie sie zum Beispiel für
Suchdienste im WWW erforderlich ist.
In dem Beispiel kann der Anwender in einer angezeigten HTML-Datei in einem Formular Daten
eingeben, zum Beispiel eine Suche in einer Datenbank formulieren. Nach dem Abschicken des
Formulars an den Server-Rechner wird ein CGI-Programm aufgerufen. Das CGI-Programm setzt
die vom Anwender eingegebenen Daten in eine Datenbankabfrage um. Wie das genau
funktioniert, hängt von der Datenbank ab. Es gibt eine international standardisierte
Datenbankabfragesprache, SQL (siehe LOG IN 5/687, S. 68 f.), die hierbei sehr
häufig zum Einsatz kommt. Die Datenbankanwendung liefert die Suchergebnisse an das
aufrufende CGI-Programm zurück (oder schreibt sie in eine Datei, die das CGI-Programm
dann auslesen kann). Das CGI-Programm erzeugt nun HTML-Code, wobei es die Suchergebnisse
als Daten in den HTML-Code einbaut. Den HTML-Code sendet das CGI-Programm an den
WWW-Browser, der die Suchabfrage gestartet hat. Am Bildschirm des Anwenders verschwindet
die WWW-Seite mit dem Suchformular und es erscheint eine neue Seite mit den
Suchergebnissen, dynamisch generiert von dem CGI-Programm.
Aufrufen von CGI-Programmen
Es kann jedes CGI-Programm aufgerufen werden, dessen Aufruf bekannt ist. Dabei ist es
egal, auf welchem Server das CGI-Programm liegt. So können auch CGI-Programme auf fremden
Servern genutzt werden, wenn deren Aufruf bekannt ist.
Um eigene Daten etwa die Zugriffszahlen auf die eigenen WWW-Seiten
anzuzeigen, benötigt man entweder eigene CGI-Programme oder nimmt einen öffentlichen
CGI-Dienst in Anspruch. Fremde CGI-Programme sollten immer nur zum Nutzen der Anwender
aufgerufen werden, zum Beispiel, indem eine deutschsprachige Version eines im Original
englischsprachigen Formulars angeboten wird und man beim Absenden des Formulars das fremde
CGI-Programm aufruft.
Öffentliche CGI-Dienste
Um Anbietern von WWW-Seiten, die sich mit CGI nicht auskennen oder kein CGI zur Verfügung
haben, CGI-Möglichkeiten zur Verfügung zu stellen, gibt es mittlerweile viele
öffentliche CGI-Dienste im WWW. Bei diesen Diensten muß man sich registrieren lassen.
Dafür erhält man dann einen HTML-Code, der in die eigenen HTML-Dateien eingebaut werden
kann, und der ein entsprechendes CGI-Programm auf dem Server-Rechner des öffentlichen
CGI-Anbieters aufruft.
Einige dieser Dienste sind kostenlos, andere kann man nur gegen Gebühr in Anspruch
nehmen. Die Gebühren sind jedoch meist sehr gering (z.B. 20 Mark im Jahr für
Zugriffszähler und Statistik für die eigene Homepage).
Stefan Münz
Der Artikel wurde mit freundlicher Genehmigung der Informationsdatei HTML-Dateien
selbst erstellen Das Kompendium für Entwickler von WWW-Seiten entnommen. Das
Dokument ist u.a. zu finden unter der URL http://www.netzwelt.com/selfhtml/
|
|
Nach oben
Weiter
|