Common Gateway Interface - LinkFang.de





Common Gateway Interface


Das Common Gateway Interface (CGI) ist ein Standard für den Datenaustausch zwischen einem Webserver und dritter Software, die Anfragen bearbeitet. CGI ist eine schon länger bestehende Variante, Webseiten dynamisch bzw. interaktiv zu machen, deren erste Überlegungen auf das Jahr 1993 zurückgehen.

Funktionsweise

Ein Webserver, der CGI unterstützt, stellt der externen Software eine Laufzeitumgebung zur Verfügung, die insbesondere aus Folgendem besteht:

Umgebungsvariablen
Umgebungsvariablen (z. B. SERVER_NAME), die dem Programm helfen, sich über die Anfragen der Webserver-Einstellung und -Situation zu informieren. Die Bezeichnungen sowie das Format der Inhalte sind größtenteils standardisiert.
Ein- und Ausgabekanäle
Bereitstellung von Standard-Datenströmen. Meist wird der stdout-Kanal mit der Antwort des Webservers verknüpft, stdin mit dem eventuell vorhandenen Request-Body.

Vorteile

Statt nur statische Seiten von einem Webserver zu laden, die dort als Ressource zur Verfügung stehen, ist es mit CGI auch möglich, HTML-Seiten dynamisch zu erzeugen. Diese müssen zur Zeit der Anfrage noch nicht auf dem Server existieren, sondern können von dem CGI-Programm erzeugt werden.

Außerdem können CGI-Programme in vielen Programmiersprachen geschrieben sein, da die Anforderungen über das Obengenannte nicht hinausgehen.

Nachteile

Dieser Artikel oder Abschnitt bedarf einer Überarbeitung.

Ein Nachteil der CGI-Ausführung ist ihre relativ geringe Geschwindigkeit, da für jeden CGI-Aufruf ein neuer Prozess ausgeführt wird. Auf hochfrequentierten Seiten wird CGI daher heutzutage nicht mehr so oft eingesetzt, denn selbst Ansätze wie FastCGI, welches gewisse Nachteile von CGI aufhebt, konnten sich zumindest nicht auf breiter Front durchsetzen.

Um diesem Problem zu begegnen, gibt es mittlerweile z. B. für den Apache-Webserver Module, die den Interpreter für verschiedene Scriptsprachen (z. B. mod_perl für Perl, mod_python für Python etc.) direkt in den Webserver-Prozess einbinden. Dieser wird so nur einmal beim Start des Webservers geladen, anstatt bei jeder Anfrage neu. Eine andere, oft sogar effizientere Möglichkeit ist, die Programme als externe Prozesse laufen zu lassen und diesen per FastCGI die Requests des Browsers zu übergeben. Hierbei kann, anders als bei der Einbindung als Apache-Modul, nicht nur der Interpreter der Programmiersprache dauerhaft laufen gelassen werden, auch die Anwendung selbst kann die ganze Zeit geladen sein und so die eingehenden Anfragen noch effizienter bearbeiten.

Sicherheit

Dass Programme, die ein Dritter erstellt hat, auf dem Webserver ausgeführt werden können, ist in höchstem Maße sicherheitsrelevant. Daher muss sichergestellt sein, dass ein über CGI gestartetes Programm nur bestimmte, eingeschränkte Typen von Programmroutinen ausführen darf (z. B. kein Löschen von Dateien des Webservers u. ä.). Bei dem Apache-Webserver wird die Ausführung von CGI-Programmen mit Hilfe des Modules mod_suexec gegen solche Cracker-Angriffe gesichert, die das Eindringen als Root-User zum Ziel haben. Die Sicherheitsmaßnahmen sind dabei mehrstufig aufgebaut und so streng, dass viele Server-Administratoren dazu übergegangen sind, auch andere serverseitige Sprachen über CGI laufen zu lassen.

Weitere serverseitige Technologien

Weblinks


Kategorien: Web-Entwicklung | Schnittstelle (Software)

Quelle: Wikipedia - http://de.wikipedia.org/wiki/Common Gateway Interface (Vollständige Liste der Autoren des Textes [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Änderungen: Alle Bilder mit den meisten Bildunterschriften wurden entfernt. Ebenso alle zu nicht-existierenden Artikeln/Kategorien gehenden internen Wikipedia-Links (Bsp. Portal-Links, Redlinks, Bearbeiten-Links). Entfernung von Navigationsframes, Geo & Normdaten, Mediadateien, gesprochene Versionen, z.T. ID&Class-Namen, Style von Div-Containern, Metadaten, Vorlagen, wie lesenwerte Artikel. Ansonsten sind keine Inhaltsänderungen vorgenommen worden. Weiterhin kann es durch die maschinelle Bearbeitung des Inhalts zu Fehlern gerade in der Darstellung kommen. Darum würden wir jeden Besucher unserer Seite darum bitten uns diese Fehler über den Support mittels einer Nachricht mit Link zu melden. Vielen Dank!

Stand der Informationen: August 201& - Wichtiger Hinweis: Da die Inhalte maschinell von Wikipedia übernommen wurden, ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.de nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein, bitten wir Sie darum uns per Support oder E-Mail zu kontaktieren. Wir werden uns dann innerhalb von spätestens 10 Tagen um Ihr Anliegen kümmern. Auch ohne Anliegen erfolgt mindestens alle drei Monate ein Update der gesamten Inhalte.