Fast CGI

fast cgi

Copyright ┬ę Shutterstock / dizain

Was ist Fast CGI?

Bei Fast CGI handelt es sich um ein bin├Ąres Netzwerkprotokoll mit welchem Anwendungsserver an einen Webserver angebunden werden. Fast CGI funktioniert ├Ąhnlich wie das klassische Common Gateway Interface (CGI). Ziel der Entwicklung von Fast CGI war es, die Performanceprobleme von CGI zu umgehen.

Wie funktioniert Fast CGI?

Bei Fast CGI erfolgt die Kommunikation mit dem Webserver verbindungslos sowie paketorientiert. In jedem Datenpaket ist im Header neben der Protokollversion auch den Nachrichtentyp, die Request ID sowie die L├Ąnge der nachfolgenden Daten. Der Nachrichtentyp ist dabei gr├Â├čtenteils mit dem aus CGI bekannten Datenquellen identisch.

Pro Datenpaket k├Ânnen unter anderem die CGI Umgebungsvariablen, die Standardausgabe f├╝r die Ausgabe an den Client und den Inhalt der Standardausgabe f├╝r Post transportiert werden. Anhand der Request ID lassen sich mehrere Clients unterscheiden und k├Ânnen somit gleichzeitig bedient werden. Im Gegensatz zum klassischen CGI lassen sich mehrere Clients mit nur einer Programminstanz bedienen.

Unterschiede von Fast CGI zu CGI

Wird eine auf CGI basierende Webseite aufgerufen, startet der Webserver den Prozess des CGI Programms und schlie├čt diesen am Ende des Request wieder. Da die Programme sehr h├Ąufig in einer Skriptsprache wie PHP oder Perl geschrieben sind, muss bei jedem Aufruf ein zumeist recht umfangreicher Interpreter geladen werden. Beim klassischen CGI dauert dieser Aufruf oftmals l├Ąnger als die eigentliche Ausf├╝hrung des Programms. Die Folge ist ein gro├čer Overhead.

Ein weiteres Problem von Fast CGI ist der Umstand, dass f├╝r jeden Request ein separater Interpreter ben├Âtigt wird. Kommt es gleichzeitig zu mehreren Requests befinden sich im Arbeitsspeicher des Webservers mehrere Kopien. Bei stark ausgelasteten Servern kann es somit schnell zu einer ├ťberlastung kommen.

Bei Fast CGI muss das ausf├╝hrende Programm inklusive Interpreter nur einmal geladen werden. Anschlie├čend steht es f├╝r mehrere Requests zur Verf├╝gung. Dabei spielt es keine Rolle ob diese vom selben oder verschiedenen Clients stammen. Ein weiterer Unterschied ist, dass die Kommunikation mit dem Webserver nicht ├╝ber Umgebungsvariablen sowie Standardeingaben und Ausgaben l├Ąuft. Stattdessen werden Unix Domain Sockets oder TCP Netzwerkverbindungen genutzt. Das Programm kann sogar auf einem anderen Rechner laufen.

Programmiertechnisch liegt der Unterschied zu normalen CGI Programmen in erster Linie darin, dass die Requests bei Fast CGI durch eine zentrale Schleife entgegengenommen werden. Diese k├Ânnen solange wie der Webserver laufen wobei die Variablen beim Durchlaufen einer Schleife erhalten bleiben. Dadurch l├Ąsst sich Fast CGI besser optimieren erfordert jedoch im Gegenzug eine genauere Programmierung. Ansonsten kann es zu Speicherlecks kommen.

Fast CGI und HTML

In den HTML Code von Webseiten lassen sich sowohl HTML Tags wie auch CGI Aufrufe integrieren. Die integrierten Anwendungen k├Ânnen dabei verschiedene Funktionen umfassen. Zudem kann das CGI Script auch einen automatischen Verweis ausf├╝hren, f├╝r die keinerlei Benutzerinteraktionen erforderlich sind. Auf diese Weise lassen sich beispielsweise Datums- und Zeitverl├Ąufe aufrufen. Hierzu wird das Fast CGI Skript Anker in den HTML Code eingebunden. Um den aktuellen Seitenaufrufinkrement zu speichern wird eine separate Textdatei angelegt. Die Seitenzahl wird ├╝ber einen Server Include gespeichert. Dieser entspricht dabei einer HTML-Datei mit einem oder mehreren Skriptbefehlen.

Fast CGI Nachteile und SQL

Bei Structered QueryLanguage (SQL) handelt es sich um die Beschreibungssprache f├╝r relationale Datenbanken. Mittels PHP ist ein deutlich schnellerer SQL Datentransfer m├Âglich.

CGI ist der Vorg├Ąnger von dynamischen Webseiten. Das Protokoll wurde urspr├╝nglich zur Daten├╝bertragung im Internet entwickelt. Ein gro├čer Nachteil sind dabei die m├Âglichen Performanceprobleme. Werden Informationen in ein Webformular eingetragen, erfolgt zun├Ąchst die Bearbeitung des CGI Ordners des lokalen Webservers. Erst anschlie├čend werden die encodierten Daten an einen entfernten Webserver gesendet. Die gespeicherten Daten k├Ânnen von authentifizierten Clients per Webserver aufgerufen, visualisiert sowie editiert werden. Die ├ťbermittlung mit PHP ist weniger fehleranf├Ąllig und schneller.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte