|
|
- CGI bedeutet Common Gateway Interface
und bezeichnet eine Software-Schnittstelle, über die ein
HTTP-Serverprogramm ein benutzerdefiniertes Unterprogramm
aufrufen kann.
-
-
Das Besondere an diesem Unterprogramm ist,
dass es nicht von dem Programmierer des Servers geschrieben
wurde, sondern von einem Anwender des Servers. Dieser muss sein
Unterprogramm, (seine CGI-Funktion) dem HTTP-Server mitteilen,
sie dort installieren.
-
Beim IPC@CHIP geschieht dies über den
Softwareinterrupt: ABh Funktion: 01h
|
|
|
|
|
|
|
|
- Die CGI-Funktion
-
Die CGI-Funktion ist das externe
Unterprogramm, das der Anwendungsprogrammierer dem
Netzwerk-Server hinzufügt hat. Er kann durch diese Funktion
die Arbeitsweise des HTTP-Servers erheblich beeinflussen und
erweitern.
-
Ein Beispiel ist die Abfrage von
Benutzernamen und Passwort. Stimmen die von außen
übermittelten Daten, mit denen, die in der CGI-Funktion
hinterlegten wurden, nicht überein, kann die CGI-Funktion
bestimmen, wie das Serverprogramm nun reagieren soll.
Normalerweise wird sie anweisen, dass eine Aufforderung zur
Neueingabe zurückgesendet wird.
-
-
Ein zweites Beispiel ist die Möglichkeit,
unter Programmkontrolle eine HTML-Seite herzustellen. In diese
kann die CGI-Funktion aktuelle Daten einfügen, wie die
Uhrzeit, einen Zählerwert, der die Häufigkeit des
Aufrufs einer Seite beinhaltet, die Temperatur am Ort des
Servers usw. Solche HTML-Seiten nennt man dynamische Seiten,
da sie im Moment der Anforderung auch erstellt werden.
-
-
Sie stehen im Gegensatz zu den bereits
vorgefertigten HTML-Seiten, die im Rootverzeichnis des
Netzwerk-Servers abgelegt sind. Diese spricht man als statische
Seiten an, da sie über die Zeit unverändert
bleiben.
-
-
Die CGI-Funktion und der Webserver müssen
Daten miteinander austauschen können. Das sind einmal ihre
Betriebsdaten, zum anderen die Daten der dynamischen Seite,
welche die CGI-Funktion erstellt hat. Bei IPC@CHIP geschieht
dies über eine vorgegebene C- Strukturvariable in der eine
Anzahl von Untervariablen enthalten sind.
|
|
|
|
|
|
|
|
- .. Austausch der Daten der
dynamisch erstellten Seite
-
Die CGI-Funktion stellt Daten zusammen die
dann zum nachfragenden Client zurückgesendet werden sollen.
Dies geschieht üblicherweise so, dass sich die CGI-Funktion
einen Speicherbereich im Arbeitsspeicher reserviert und dort,
die durch sie zusammengestellten und berechneten Daten,
hineinschreibt. Da sie diese Daten nicht selber senden kann,
sondern nur der WebServer, muss sie diesem mitteilen, wo sich
der Speicherbereich (Buffer) befindet, in dem diese Daten
liegen. Beide Programmteile, WebServer und CGI-Funktion, müssen
also Betriebsdaten miteinander austauschen, die nicht zum Client
gesendet werden.
|
|
|
|
|
|
|
|
- .. Austausch von Betriebsdaten
-
Neben der Lage des Rückgabebuffers
mit der dynamischen Seite tauschen Webserver und CGI-Funktion
noch weiter Daten aus. So kann der Webserver alle ihm vom Client
bekannten Daten, wie beispielsweise dessen IP-Adresse, an die
CGI-Funktion weitergeben. Ein weiteres Beispiel für
Datenübergaben vom WebServer zur CGI-Funktion sind die
Angaben über Benutzername und Passwort, die der Client
gesendet hat, oder die Wert/Zahl kodierten Parameter der URL.
-
-
Da diese Daten, nur zwischen dem Webserver
und der CGI-Funktion hin- und hergereicht werden und nicht zum
Client übermittelt werden sollen, benötigen der
Webserver und seine CGI-Funktion hierfür eigene Variable.
Beim IPC@CHIP sind diese in einer C-Struktur untergebracht.
|
|
|
|
|
|
|
|
- Sprachen für die CGI-Funktion
-
Die Sprachen mit denen CGI-Programme
geschrieben werden können sind vielfältig. Bei
Grossrechnern dominieren die Sprachen PHP, Pearl oder Java. Beim
IPC@CHIP können die CGI-Programme in C, Pascal oder der
Assemblersprache abgefasst werden.
-
-
PEARL: bedeutet Practical Extraktion And
Report Language
|
|
|
|
|
|