Zum Inhalt springen

Glossar · C

CGI-Skript

Ein Programm, das auf einem Webserver ausgeführt wird, um dynamische Inhalte zu generieren.

Definition

Ein CGI-Skript ist ein Programm, das auf einem Webserver ausgeführt wird, um dynamische Inhalte für Webseiten zu erzeugen. CGI steht für Common Gateway Interface, eine Schnittstelle, die es Webservern ermöglicht, externe Programme aufzurufen und deren Ausgabe an den Browser des Nutzers zu senden. Das Skript kann in verschiedenen Programmiersprachen wie Perl, Python, C oder Shell-Skripten geschrieben sein.

Das Hauptziel von CGI-Skripten ist die Generierung von Inhalten, die sich je nach Eingaben des Nutzers oder anderen Faktoren ändern können. Im Gegensatz zu statischen HTML-Seiten erzeugen CGI-Skripte dynamische Webseiten, die beispielsweise Formulare verarbeiten, Datenbanken abfragen oder personalisierte Informationen anzeigen. Die Kommunikation zwischen Webserver und CGI-Skript erfolgt über Umgebungsvariablen und Standard-Ein- und Ausgabeströme.

Hintergrund und Geschichte

Das Common Gateway Interface wurde Anfang der 1990er Jahre eingeführt, als das World Wide Web an Popularität gewann und die Notwendigkeit für interaktive Webseiten entstand. Die Spezifikation wurde von der NCSA (National Center for Supercomputing Applications) und anderen Organisationen entwickelt, um eine standardisierte Methode zur Integration externer Programme in Webserver zu schaffen.

CGI war eine der ersten Technologien, die es ermöglichten, Webserver mit Programmen zu erweitern, und wurde schnell von Webserver-Software wie dem Apache HTTP Server unterstützt. In den Anfangsjahren war CGI die dominierende Methode zur Erstellung dynamischer Inhalte, bevor neuere Technologien wie Server-Side Scripting mit PHP oder Java Servlets aufkamen.

Funktionsweise

Wenn ein Webserver eine Anfrage erhält, die an ein CGI-Skript gerichtet ist, startet er das entsprechende Programm als separaten Prozess. Dabei übergibt der Server Eingabedaten, etwa Formulardaten, über Umgebungsvariablen oder den Standard-Eingabestrom an das Skript. Das Skript verarbeitet diese Daten und erzeugt eine Ausgabe, die typischerweise HTTP-Header und HTML-Code enthält.

Die Ausgabe des CGI-Skripts wird vom Webserver gelesen und an den Client weitergeleitet. Da für jede Anfrage ein neuer Prozess gestartet wird, kann dies zu einer höheren Serverlast führen, insbesondere bei vielen gleichzeitigen Zugriffen. Aus diesem Grund wurden später effizientere Methoden zur dynamischen Inhaltserzeugung entwickelt.

Einsatzgebiete

CGI-Skripte werden vor allem in Webanwendungen verwendet, die dynamische Inhalte benötigen, wie etwa Gästebücher, Kontaktformulare oder einfache Datenbankabfragen. Sie sind plattformunabhängig und können auf verschiedenen Betriebssystemen eingesetzt werden, solange der Webserver CGI unterstützt.

Obwohl CGI heute seltener verwendet wird, findet es weiterhin Anwendung in Umgebungen, in denen einfache oder legacy-basierte Lösungen gewünscht sind. Zudem dient CGI als Grundlage für viele spätere Technologien und Konzepte im Bereich der Webentwicklung.

Abgrenzung zu verwandten Technologien

Im Vergleich zu moderneren Server-Side-Technologien wie PHP, ASP.NET oder Java Servlets zeichnet sich CGI durch das Starten eines neuen Prozesses pro Anfrage aus, was zu höheren Ressourcenverbrauch führt. Diese neueren Technologien integrieren sich oft als Module direkt in den Webserver und können Anfragen effizienter bearbeiten.

Ein weiterer verwandter Begriff ist FastCGI, eine Weiterentwicklung des CGI-Standards, die das Starten eines neuen Prozesses für jede Anfrage vermeidet und so die Performance verbessert. Während CGI eher als einfache und universelle Lösung gilt, bieten FastCGI und andere Technologien bessere Skalierbarkeit und Geschwindigkeit.