SELFHTML

Die CGI-Schnittstelle

Informationsseite

nach unten Die CGI-Schnittstelle
nach unten CGI-Informationen

 nach unten 

Die CGI-Schnittstelle

Die CGI-Schnittstelle (Common Gateway Interface - Allgemeine Vermittlungsrechner-Schnittstelle) ist eine Möglichkeit, Programme oder Scripts im Web bereitzustellen, die von HTML-Dateien aus aufgerufen werden und die selbst HTML-Code erzeugen und an einen Web-Browser senden können. Im Unterschied zu Seite JavaScript werden solche Scripts oder Programme aber nicht nach dem Übertragen einer Web-Seite im Browser des Anwenders ausgeführt, sondern bevor der Browser vom Server Daten übertragen bekommt. Deshalb sind CGI-Scripts oder CGI-Programme auch nur ausführbar, wenn eine HTTP-basierte Kommunikation zwischen Web-Browser und Web-Server stattfindet. CGI ist dabei auf der Server-Seite angesiedelt.

Die Datenverarbeitung geschieht ebenfalls auf dem Server-Rechner. CGI-Programme können auf dem Server-Rechner Daten speichern, zum Beispiel, wie oft auf eine Web-Seite zugegriffen wurde, oder, was ein Anwender in ein Gästebuch geschrieben hat. Ein CGI-Script kann auf dem Server-Rechner auch installierte Datenbanken abfragen. Bei entsprechendem Aufruf kann ein CGI-Programm gespeicherte Daten auslesen und daraus HTML-Code generieren. Dieser "dynamisch" erzeugte HTML-Code wird an den aufrufenden Web-Browser eines Anwenders übertragen und kann dort individuelle Daten in HTML-Form anzeigen, zum Beispiel den aktuellen Zugriffszählerstand einer Web-Seite, die bisherigen Einträge in einem Gästebuch oder Ergebnisse einer Datenbanksuche.

Die CGI-Schnittstelle muss von der Web-Server-Software unterstützt werden. Aus Sicht des Mieters von Speicherplatz auf einem Web-Server steht die CGI-Schnittstelle meistens in Form eines bestimmten Verzeichnisses mit dem Namen cgi-bin zur Verfügung. In diesem Verzeichnis können Scripts abgelegt werden, die CGI-Aufgaben übernehmen. Falls Sie unsicher sind, fragen Sie Ihren Provider oder Webmaster, der Ihnen Speicherplatz im Web zur Verfügung stellt, ob er Ihnen eine CGI-Schnittstelle zur Verfügung stellt. Bei preiswerten oder gar kostenlosen Homepage-Vermittlern steht Ihnen 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, muss es entweder für die Betriebssystemumgebung des Server-Rechners als ausführbares Programm kompiliert worden sein, oder es muss auf dem Server ein Laufzeitinterpreter vorhanden sein, der das Programm ausführt. Wenn der Server zum Beispiel ein Linux-Rechner ist, führt er C-Programme aus, die mit einem Linux-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 Compilern für C, Pascal, Visual Basic usw. erzeugt wurden. Die meisten heutigen CGI-Programme sind jedoch keine kompilierten Programme, sondern lediglich Scripts, die von einem Interpreter beim Aufruf ausgeführt werden. Der bekannteste und beliebteste Interpreter ist dabei der Seite Perl-Interpreter.

Die CGI-Schnittstelle steht zur Verfügung, wenn ein Web-Server installiert ist, der CGI unterstützt. Sie können sich selbst auf Ihrem PC Seite lokal einen Web-Server einrichten, um dort eine CGI-Schnittstelle zur Verfügung zu haben. Wenn Sie bei einem Provider auf einem öffentlichen Web-Server im Internet Speicherplatz für eigene Web-Seiten erhalten, können Sie die CGI-Schnittstelle dieses Web-Servers benutzen, um eigene CGI-Scripts im Web einzusetzen. Ihr Provider muss Ihnen allerdings den Zugriff auf die CGI-Schnittstelle ermöglichen. Fragen Sie den Provider im Zweifelsfall danach!

Die Spezifikation (verbindliche Beschreibung) für diese Schnittstelle wird zur Zeit von der englischsprachige Seite NCSA Software Development Group betreut.

Um die CGI-Schnittstelle nutzen zu können, benötigen Sie Zugriff auf ein bestimmtes Verzeichnis auf dem Server-Rechner, das CGI-Programme enthalten darf. Meist erhält dieses Verzeichnis den Namen cgi-bin. CGI-Programme oder CGI-Scripts werden nur dann ausgeführt, wenn sie in diesem Verzeichnis liegen. Welches das CGI-Verzeichnis sein soll und wie Sie es ansprechen wollen, können Sie beim Seite Einrichten des eigenen Web-Servers festlegen. Je nach Server können Sie auch mehrere CGI-Verzeichnisse einrichten. Bei einem Provider, der Ihnen öffentlichen Web-Speicher mit CGI-Schnittstelle eingerichtet hat, finden Sie das CGI-Verzeichnis bereits vor. Sie brauchen dann nur noch Ihre CGI-Scripts in dieses Verzeichnis hochzuladen (siehe auch Seite CGI-Scripts auf öffentlichem Web-Server installieren).

Die CGI-Schnittstelle ruft nicht nur das jeweils auszuführende Programm auf und leitet dessen Antwort weiter, sondern stellt auch eine Reihe von Daten bereit, die der Web-Server speichert und die ein CGI-Script auslesen kann (und zum Teil auslesen muss), um Daten verarbeiten zu können. Diese Daten speichert der Web-Server in so genannten Seite CGI-Umgebungsvariablen.

Derzeit liegt die CGI-Schnittstellendefinition in der Version 1.1 vor. Andere Schnittstellen für ausführbare Programme im Web, die von kommerziellen Herstellern wie Netscape oder Microsoft eingeführt wurden, machen der klassischen CGI-Schnittstelle Konkurrenz. Von Netscape stammt beispielsweise die API-Schnittstelle (auch NSAPI genannt), von Microsoft die ISAPI-Schnittstelle. Beide Schnittstellen sind für die Server-Software-Produkte der jeweiligen Hersteller optimiert und erreichen eine Performance bei der Datenverarbeitung, die ein Mehrfaches der CGI-Schnittstelle beträgt. Ein entscheidender Vorteil der CGI-Schnittstelle bleibt jedoch die Tatsache, dass es sich - ähnlich wie bei HTML - um einen kommerziell unabhängigen, kostenlosen und produktübergreifenden Standard handelt.

Die meistbenutzte Programmiersprache für CGI-Scripts ist noch immer Kapitel Perl. Der Grund dafür ist, dass Perl sehr mächtige Funktionen besitzt, z.B. für Zeichenkettenoperationen oder für das Lesen und Schreiben von Daten. Der Perl-Interpreter, der zum Ausführen eines Perl-Scripts erforderlich ist, ist für fast alle Betriebssysteme als Freeware verfügbar und auf fast allen Server-Rechnern im Web installiert.

nach obennach unten

CGI-Informationen

Für CGI gibt es keinen Standard, der dem Status von HTML, CSS oder XML vergleichbar wäre. Das W3-Konsortium, bei dem es zwar auch eine Arbeitsgruppe gibt, die sich um das HTTP-Protokoll kümmert, klammert die CGI-Schnittstelle aus den HTTP-Dokumenten aus. Die CGI-Schnittstelle wurde mit einem der ersten und seinerzeit erfolgreichsten Web-Server-Produkte eingeführt, nämlich mit dem NCSA-Web-Server (NCSA = National Center for Supercomputing, eine akademische Institution). Die Original-Spezifikation für die CGI-Schnittstelle von NCSA ist auf den Web-Seiten von NCSA noch verfügbar:

englischsprachige Seite The CGI Specification

Allzuviel gehört eigentlich gar nicht dazu - es muss lediglich vom Web-Server unterstützt werden. Der NCSA-Server spielt mittlerweile keine Rolle mehr, die klare Führungsrolle unter den Web-Server-Produkten hat mittlerweile der frei verfügbare Apache Web-Server übernommen. Dieser unterstützt die CGI-Schnittstelle selbstverständlich auch.

Beachten Sie:

Im Link-Verzeichnis des Online-Angebots von SELFHTML aktuell finden Sie weitere relevante und aktuelle Verweise, z.B. zu Original-Dokumentationen und weiteren Quellen:

Online-Seite SELFHTML-Linkverzeichnis: CGI/Perl

Innerhalb der vorliegenden Dokumentation wird CGI im Kapitel Kapitel CGI behandelt.

 nach oben
weiter Seite Andere Schnittstellen
zurück Seite Flash
 

© 2005 Seite Impressum