CGI - Common Gateway Interface



CGI (Common Gateway Interface) ist eine Schnittstelle, die die Kommunikation (Datenmaustausch) zwischen Client und Server realisiert. Der Client empfängt, der Server sendet Daten bzw. Programme. Ziel der Methode ist die Erweiterung der Funktionalität des Client-Webservers. So können über CGI Webseiten auf einem Webserver interaktiv d. h. dynamisch gestaltet werden. Ein konkretes Beispiel für den Einsatz von CGI ist das Gästebuch einer Webseite.

Dazu werden CGI Programme bzw. Scripte auf dem Webserver ausgeführt, die ihm vom Anbieter gesendet werden. Die CGI Programme können in verschiedenen Programmiersprachen geschrieben werden, wie: C/C++, PERL, Fortran, Unix Shell-Sprache, Visual Basic. Die Programme müssen ausführbar sein, fachlich gesagt, sie müssen zuvor kompiliert und auch gelinkt worden sein. Möglich ist auch die Variante, dass ein auf dem Webserver verfügbarer passender Interpreter die Quellcodes der Scripte/Programme an Ort und Stelle interpretiert und ausführt.

Voraussetzung für den Einsatz von CGI Programme ist, dass der Webserver das Common Gateway Interface unterstützt, d. h. über die von der zu übertragende Software benötigte Laufzeitumgebung verfügt. Dazu gehören vor allem die Variablen, die das CGI Programm benötigt, um auf dem Webserver ausgeführt werden zu können. Dabei sind Namen, Anzahl, Typ und Inhalt der Variablen relevant. Ferner müssen passende Ein- bzw. Ausgabekanäle verfügbar sein. Sind diese Bedingungen erfüllt, ist die Programmiersprache der zu übertragenden und auszuführenden Programme ohne Bedeutung.

Allerdings verläuft die Programmausführung bei der CGI Methode vergleichsweise langsam und verschlechtert die Performance des Webservers. Welches daran liegt, dass pro Abruf eine Übertragung und eine Programmausführung erfolgen. Besonders nachteilig ist die Methode für viel besuchte Webseiten.

Zudem birgt die CGI Methode ein gewisses Sicherheitsrisiko für den Webserver, der es zulässt, dass fremde Programme auf ihm ausgeführt werden. Für Sicherheit, dass ein abgerufenes Programm wirklich nur die Funktionen ausführt, für die es abgerufen wurde und auf keinen Fall Daten auf dem Webserver beschädigen bzw. löschen kann, muss gesorgt werden.

Gute und sichere CGI Programme haben auch ihren Preis.