MagnaMedia · AMIGA-Magazin · Internet: So funktioniert CGI

Aktuelles Heft 12/97

Br�cke zur Interaktion

Das World Wide Web nur mit �normalen� WWW-Seiten w�re ganz schon langweilig. Richtig Spa� macht es erst, wenn man selbst was eingeben und bewirken kann. Das erlaubt in erster Linie �CGI� � das Common Gateway Interface. Dieser Artikel beleuchtet, was das ist und wie es funktioniert.

von Uwe R�hm

Sie kennen es wahrscheinlich: Sie w�hlen die Seite einer Suchmaschine aus, warten bis die Web-Seite erscheint und geben eine Begriff in ein Textfeld ein. Nach dem Klick auf �Suchen� erscheint die Antwort. M�glich macht diese Interaktion erst das Common Gateway Interface.

Ohne diese Erweiterungsm�glichkeit k�nnte ein Web-Server lediglich vorgefertigte Web-Seiten verschicken. So war das noch bei HTML in der ersten Version. Ab Version 2.0 gab es die Eingabem�glichkeiten. Doch was soll der Web-Browser tun, wenn der Benutzer alle Werte eingegeben hat?

Die Werte werden an den Web-Server zur�ckgeschickt und er darf sie verarbeiten. Aber auch er kann damit nichts anfangen. Statt dessen hat er eine allgemeine Schnittstelle, um Programme zu starten und mit den verschickten Daten zu f�ttern. Diese Schnittstelle ist das Common Gateway Interface. Es ist bei allen Web-Servern zu finden.

Script in Aktion: Ablauf einer Suchanfrage per CGI-Skript
Im Falle einer Anfrage einer Suchmaschine sind die verschickten Daten meist das Suchwort, wie die Ausgabe auszusehen hat (knapp, normal oder detailliert) und ein paar andere Optionen. Innerhalb einer solchen Abfrage-Webseite findet sich au�erdem noch die Anweisung

<FORM ACTION="http://www.meinweb.de/cgi-bin/auswertung">

Das, was hinter �cgi-bin/� steht, ist der Programmname. Das Programm startet der Web-Server, nachdem Sie auf �Suchen� geklickt haben und die Daten komplett angekommen sind. Ihm �bergibt er die vom Web-Browser hinterhergeschickten Daten. Fragt sich nur, wie? Da gibt es zwei Methoden:

  1. Alle Daten werden in die ENV-Variable �QUERY_ STRING� geschrieben. Das CGI-Programm mu� sie aus dem String lesen und verarbeiten. Diese Methode nennt sich �GET� und mu� innerhalb von
    mit �METHOD= GET� �bergeben werden.
  2. Alle Daten werden dem Programm �ber den aktuellen Eingabestrom weitergereicht. Das ist bei normalen Shell-Programmen die Tastatur (in der Sprache C �stdin�). Das bietet sich bei gro�en Datenmengen an, weil ENV-Variablen auf einigen Computersystemen in der L�nge beschr�nkt sind. Diese Methode hei�t �POST� und mu� per �METHOD= POST� angegeben werden.

Anschlie�end kann das Programm sich auf dem Web-Server austoben und sein Ergebnis zur�ckliefern. Und das geht ganz einfach: Es mu� einfach nur HTML-Code ausgeben � und zwar so, als w�rde es die Ausgabe auf den Bildschirm schreiben wollen. In C w�rde ein

printf("<H1>Hallo Leute</H1> Wie geht's?\n");

ausreichen. Die Aktionen beschr�nken sich also auf das Auslesen einer ENV-Variable und dem Ausspucken von HTML. Nicht mehr und nicht weniger. Dazwischen ist alles erlaubt.

Die richtige CGI-Sprache

Im Zusammenhang von CGI ist oft von Skriptsprachen wie �Perl� die Rede, die man lernen mu�, wenn man mit CGI arbeitet. Um es deutlich zu sagen: Das ist Quatsch. �Perl� ist zwar eine sehr m�chtige Sprache, die perfekt zu CGI pa�t, aber CGI-Programme k�nnen Sie in jeder x-beliebigen Sprache schreiben.

Wer schon viel in C geschrieben hat und sich damit gut auskennt, kann C nehmen. Aber auch Amiga-E, ARexx, Shell-Skripte, Pascal oder auch Assembler eignen sich daf�r. Hauptsache, das Programm kann ENV-Variablen auslesen und Texte ausgeben. Und das kann wirklich jedes Programm irgendeiner Programmiersprache.

Selbst ausprobieren

Um selbst einmal ein CGI-Skript oder Programm auszuprobieren, brauchen Sie zwingend einen Web-Server. Perfekt eignet sich daf�r der AWS, zu bekommen auf dem Web-Server, wo es auch IBrowse gibt (http://www.omnipresence.com).

Er l��t sich in wenigen Minuten installieren und l�uft meist v�llig problemlos (Er ist schon seit langem in der AMIGA-Magazin-Redaktion im Einsatz). Sie m�ssen nicht einmal mit dem Internet verbunden sein. Die Demo-Version von Miami oder AmiTCP reicht aus. Wenn Sie Miami starten, brechen Sie einfach den Versuch ab, mit dem Modem zu w�hlen. Damit haben Sie zwar keine Verbindung zum Internet, aber funktionierendes TCP/IP. Starten Sie danach AWS und schon kann es losgehen.

Allerdings gibt es bei einem CGI-Skript diverse Kleinigkeiten zu beachten, die hier nicht alle aufgef�hrt werden k�nnen. Eine gute Hilfe sind B�cher wie [1] oder [2]. Sie beschreiben sehr gut, wie man die vom Web-Browser verschickten Werte entgegennimmt und aufbereitet, welche ENV-Variablen es noch gibt und was f�r potentielle Sicherheitsprobleme es mit CGI-Skripten geben kann. Beim AWS sind schon einige Skripte (z.B. in ARexx) dabei, die man St�ck f�r St�ck erweitern und eigenen Bed�rfnissen anpassen kann.

lb
Literatur:
[1] Uwe Bergmann: WWW � Anbieten und nutzen, Carl Hanser Verlag M�nchen Wien, ISBN 3-446-18458-9
[2] Russ Jones & Adrian Nye: HTML und das World Wide Web, O'Reilly, ISBN 3-930673-34-7

 

MagnaMedia Hauptseite

� Copyright by MagnaMedia Verlag AG, Haar bei M�nchen
Ver�ffentlichung und Vervielf�ltigung nur mit schriftlicher Genehmigung des Verlags


Kommentare, Fragen, Korrekturen und Kritik bitte an Webmaster AMIGA schicken.
Zuletzt aktualisiert am 9. Novemeber 1997