CGI (Common Gateway Interface)

CGI-Schnittstelle und Perl-Interpreter

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 können, und die selbst HTML-Code erzeugen und an einen Web-Browser senden können. Im Unterschied zu 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 Betriebssystem-Umgebung des Server-Rechners als ausführbares Programm kompiliert worden sein, oder es muss auf dem Server ein Laufzeit-Interpreter 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 Perl-Interpreter.

Perl ist eine Programmiersprache, die eine Mischung aus klassischen Programmiersprachen wie C und Scriptsprachen wie Unix-Shellscript darstellt. Perl ist extrem leistungsfähig, und der Perl-Interpreter hochgradig ausgereift. Perl hat deshalb auf zahllosen Gebieten die Herzen der Programmierer erobert. Unter anderem eben auch auf dem Gebiet der CGI-Programmierung. Aus diesem Grund werden CGI-Programmierung und Perl mittlerweile oft in einem Atemzug genannt und als zusammengehörig dargestellt. Es ist nur wichtig zu wissen, dass die Verbindung von CGI und Perl nichts Naturgegebenes oder Notwendiges ist. CGI ist lediglich eine Norm für eine Programmier-Schnittstelle, die Web-Server-Software unterstützen sollte, und Perl ist eine universell einsetzbare Scriptsprache, die sich allerdings auf Grund ihrer Charakteristik hervorragend für die CGI-Programmierung eignet.