Was ist ein FastCGI?
FastCGI ist eine Erweiterung des Common Gateway Interface (CGI), das von einem inzwischen nicht mehr existierenden Unternehmen namens Open Market entwickelt wurde. FastCGI ist als offener Standard frei verfügbar. Es behebt bestimmte Mängel in CGI, die die Leistung einschränken.
Im Gegensatz zu CGI erstellt FastCGI nicht für jede Anforderung einen neuen Prozess, wodurch der Aufwand für die Erstellung und Zerstörung von Prozessen bei jedem Empfang einer Anforderung minimiert wird. Dieser Overhead kann durch die Verwendung von APIs (Application Program Interfaces) wie NSAPI (Application Programming Interface von Netscape Server) oder ISAPI (Internet Server Application Programming Interface von ISAPI) umgangen werden. Da diese jedoch proprietär sind, ergeben sich für die unterstützten Sprachen eine zusätzliche Lernkurve und Einschränkungen ist zu berücksichtigen. Ein weiterer Nachteil von CGI ist die Tatsache, dass bestimmte Fälle für die Wiederverwendung nicht abgerufen werden können, z. B. Verbindungen zu Datenbanken oder Caching-Techniken. Die Bearbeitung von Anfragen kann mit FastCGI bis zu 30-mal schneller sein als mit herkömmlichem CGI.
Mit FastCGI können mehrere Anforderungen über eine einzige Verbindung verarbeitet werden, was als Multiplexing bezeichnet wird. Alternativ können mehrere Verbindungen verwendet werden. Anforderungen werden über FTP (File Transfer Protocol) oder Sockets übertragen. Dieselbe Verbindung wird dann verwendet, um die Antwort zurückzugeben.
Obwohl die Verbindung zu diesem Zeitpunkt möglicherweise geschlossen wird, bleiben der Webserver und der Prozess weiterhin bestehen. Dies bietet viele Vorteile. Dies bedeutet beispielsweise, dass der Server und der Anwendungsprozess separat heruntergefahren oder neu gestartet werden können.
FastCGI wurde ursprünglich von Open Market entwickelt und in sein Webserver-Angebot implementiert. Die Schnittstelle kann jedoch auf jedem Server implementiert werden und war bald auf einer Reihe anderer industrieller Webserver implementiert. FastCGI ist in hohem Maße kompatibel mit verteiltem Computing, sodass eine FastCGI-Anwendung auf einem separaten Server ausgeführt werden kann, der mit dem Webdienst verbunden ist. Dies bietet alle Vorteile, die Verfügbarkeit von Systemen zu erhöhen, die Skalierbarkeit zu verbessern und die Systemsicherheit zu erhöhen, da die Komponenten isoliert sind. Durch die Verwendung von Remote-FastCGI wird weniger Administration benötigt, da das interne Netzwerk die Ausführung von Anwendungen übernehmen kann.
Genau wie eine CGI-Anwendung eine Antwort aus einer HTTP-Anforderung (Hypertext Transfer Protocol) generieren kann, kann auch FastCGI eine Antwort generieren. Außerdem werden Aufgaben wie das Überprüfen der Authentifizierung und das Konvertieren von Datentypen ausgeführt. Diese Aufgaben werden mit Rollen erledigt, die frei hinzugefügt und erweitert werden können.
FastCGI ist einfach zu verstehen und kann mit fast jeder Programmiersprache ausgeführt werden. Prozesse sind isoliert, sodass Server nicht durch anwendungsspezifische Probleme zum Absturz gebracht werden können. Jede mit dem FastCGI-Framework erstellte Anwendung ist mit alten Servern, auf denen CGI ausgeführt wird, rückwärts. Darüber hinaus soll die Anwendungsbibliothek die Migration von CGI-Anwendungen vereinfachen.