CGI-Script

CGI-Script

Das Common Gateway Interface (CGI) – in etwa Allgemeine Vermittlungsrechner-Schnittstelle – 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 zu 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 auf dem Webserver ausgeführt werden können, die ein Dritter erstellt hat, 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. So wird zum Beispiel PHP bei den meisten Providern als CGI-Modul eingebunden, was sich gegenüber dem Einsatz als Modul im Webserver natürlich negativ auf die Performance auswirkt.

Weitere serverseitige Technologien

Weblinks



Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

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

  • CGI-Script — CGI Script,   CGI …   Universal-Lexikon

  • CGI-Script — Programm, das auf bestimmte Daten des Servers per CGI Schnittstelle zugreift, z.B. für Datenbankhandling, Formulardatenverarbeitung. Meist in einer der Programmiersprachen C, Perl, VisualBasic geschrieben. Server, CGI …   Online-Wörterbuch Deutsch-Lexikon

  • CGI — 〈EDV; Abk. für engl.〉 Common Gateway Interface (allgemeine Schnittstelle) * * * CGI   [Abk. für Common Gateway Interface, dt »allgemeine Schnittstelle für den Übergang (zwischen einem Webserver und Programmen)«], ein Standard im World Wide We …   Universal-Lexikon

  • CGI — Common Gateway Interface. Schnittstelle, ermöglicht mittels CGI Scripts die Ausführung von Programmen auf dem Server, z.B. Datenbankhandling, Formulardatenverarbeitung. Server, CGI Script …   Online-Wörterbuch Deutsch-Lexikon

  • Script (informática) — Saltar a navegación, búsqueda Un script (cuya traducción literal es guión) o archivo de órdenes o archivo de procesamiento por lotes es un programa usualmente simple, que generalmente se almacena en un archivo de texto plano. Los script son casi… …   Wikipedia Español

  • CGI.pm — Original author(s) Lincoln Stein Stable release 3.49 / 2010 02 05 Platform Perl Type Perl module for CGI …   Wikipedia

  • CGI:IRC — est un programme en Perl/CGI qui permet l accès à IRC depuis un navigateur Web. Son design est flexible, et les usages sont divers : passerelle IRC pour un réseau IRC, salon de discussion pour site perso, accès à IRC quand on se trouve… …   Wikipédia en Français

  • Cgi-bin — 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… …   Wikipédia en Français

  • Script del lado del servidor — La programación del lado del servidor es una tecnología que consiste en el procesamiento de una petición de un usuario mediante la interpretación de un script en el servidor web para generar páginas HTML dinámicamente como respuesta. Contenido 1… …   Wikipedia Español

  • CGI — abbrev 1. City and Guilds (of London) Institute (also CGLI) 2. Computer generated imagery. * * * CGI UK [ˌsiː dʒiː ˈaɪ] US [ˌsi dʒi ˈaɪ] noun computing computer generated imagery: images produced by a computer Thesaurus: abbreviations used in… …   Useful english dictionary

Share the article and excerpts

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