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 ACTIONhttp://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 ( Hauptseite

© 1998 All Rights Reserved. Alle Rechte vorbehalten Franzis' Verlag GmbH
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