Common Gateway Interface

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.

Inhaltsverzeichnis

Funktionsweise

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

  • Umgebungsvariablen (z. B. „SERVER_NAME“), die dem Programm helfen, sich über die Anfrage, Webserver-Einstellung und -Situation zu informieren. Die Bezeichnungen sowie das Format der Inhalte sind größtenteils standardisiert.
  • Bereitstellung von Ein- und Ausgabekanälen. 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 standen, war 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 oben genannte nicht hinaus gehen.

Nachteile

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 mit CGI 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 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


Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Common gateway interface — La Common Gateway Interface (littéralement « Interface passerelle commune »), généralement abrégée CGI, est une interface normalisée utilisée par les serveurs HTTP. Ce dernier, au lieu d envoyer le contenu d un fichier (page HTML, image …   Wikipédia en Français

  • Common Gateway Interface — (en inglés «Pasarela de Interfaz Común», abreviado CGI) es una importante tecnología de la World Wide Web que permite a un cliente (explorador web) solicitar datos de un programa ejecutado en un servidor web. CGI especifica un estándar para… …   Enciclopedia Universal

  • Common Gateway Interface — Common Gateway Interface,   CGI …   Universal-Lexikon

  • Common Gateway Interface — This article is about the interface between a web server and an external application. For the term CGI in computer graphics, see Computer generated imagery. The Common Gateway Interface (CGI) is a standard (see RFC 3875: CGI Version 1.1) method… …   Wikipedia

  • Common Gateway Interface — La Common Gateway Interface (littéralement « Interface de passerelle commune »), généralement abrégée CGI, est une interface utilisée par les serveurs HTTP. Elle a été normalisée et décrite en version 1.1 dans la RFC 3875[1]. Sommaire 1 …   Wikipédia en Français

  • common gateway interface —    (CGI)    Gateway standard for interfacing external applications with World    Wide Web servers. A CGI script is used to send forms based input via SENDMAIL to the external application and cause it to be output in the specified format …   IT glossary of terms, acronyms and abbreviations

  • Common Gateway Interface —    Abbreviated CGI. A standard way that programs can interface with Web servers and allow them to run applications such as search engines and to access databases and other back end applications.    CGI defines the field specifics and control tags …   Dictionary of networking

  • Simple Common Gateway Interface — o SCGI ( interfaz de entrada común simple ) es un protocolo que fue creado como alternativa al protocolo Common Gateway Interface (CGI). Es un estándar para aplicaciones que utilizan interfaces con servidores HTTP. Es muy similar al protocolo… …   Wikipedia Español

  • Simple Common Gateway Interface — The Simple Common Gateway Interface (SCGI) is a protocol for applications to interface with HTTP servers, an alternative to the CGI protocol. It is similar to FastCGI but is designed to be easier to implement.The specification document was placed …   Wikipedia

  • Simple Common Gateway Interface — Le protocole Simple Common Gateway Interface (SCGI) est le remplaçant du protocole CGI. Il est similaire à FastCGI, mais il est plus facile à mettre en place. Voir aussi FastCGI Web Server Gateway Interface Variables d environnement CGI NCSA… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”