Common Gateway Interface (CGI)

Definition - Was bedeutet Common Gateway Interface (CGI)?

Common Gateway Interface (CGI) ist im Kontext der Webentwicklung eine Schnittstelle zum Ausführen ausführbarer Dateien über einen Webserver. In den meisten Fällen bedeutet dies, eine HTTP-Anforderung anzunehmen und an eine Anwendung zu übergeben, um eine dynamisch generierte HTML-Seite an einen Browser zurückzusenden. Während so ziemlich jedes Programm, das auf einem Webserver ausgeführt werden kann, als CGI-Skript verwendet werden kann, ist Perl die beliebteste Sprache.

Der Standard für CGI ist in RFC 3875 definiert.

Technische.me erklärt Common Gateway Interface (CGI)

In den frühen Tagen der Webentwicklung war CGI eine der wenigen Möglichkeiten, Interaktivität in einer Webanwendung bereitzustellen. Es war am häufigsten unter Apache, aber Ports wurden so eingerichtet, dass CGI auch unter IIS ausgeführt werden kann.

Die häufigste Verwendung von CGI ist die Verwendung von Skriptsprachen. Daher wird dies häufig als Ausführen eines CGI-Skripts bezeichnet. CGI-Programme und -Skripte werden normalerweise in einem Ordner mit dem Namen / cgi-bin / gesammelt.

Der Hauptnachteil von CGI besteht darin, dass beim Laden jeder Seite Overhead entsteht, da die Programme in den Speicher geladen werden müssen. Daten können zwischen dem Laden von Seiten nicht einfach im Speicher zwischengespeichert werden. Aufgrund dieses Nachteils sind viele Entwickler auf Anwendungsserver umgezogen, die weiterhin ausgeführt werden. Es gibt jedoch eine riesige Codebasis, ein Großteil davon in Perl. Befürworter von CGI argumentieren, dass es einfach, stabil und für bestimmte Anwendungen eine gute Wahl ist, insbesondere für Aufgaben, bei denen Perl herausragende Leistungen erbringt, z. B. für die Textverarbeitung. Problemumgehungen vermeiden außerdem das Laden der Perl- oder PHP-Laufzeit für jede Anforderung, indem die Laufzeit auf dem Webserver (mod_perl und mod_php in Apache) oder andere Lösungen wie FastCGI (separate Prozesse, die mehrere Anforderungen verarbeiten) enthalten sind.

Diese Definition wurde im Kontext der Webentwicklung geschrieben