www.wikidata.de-de.nina.az
FastCGI ist ein binares Netzwerkprotokoll fur die Anbindung eines Anwendungsservers an einen Webserver FastCGI ist vergleichbar mit dem Common Gateway Interface CGI wurde jedoch entwickelt um dessen Performance Probleme zu umgehen Unterschied zum CGI BearbeitenBeim Aufruf einer auf CGI basierenden Webseite wird vom Webserver ein Prozess des CGI Programms gestartet und am Ende des Requests wieder beendet Weil CGI Programme haufig in einer Skriptsprache wie Perl geschrieben sind bedeutet das dass pro Seitenaufruf der oft recht umfangreiche Interpreter geladen werden muss was einen grossen Overhead bedeutet das Laden des Interpreters dauert bei einfachen CGI Programmen langer als die eigentliche Programmausfuhrung Zudem braucht jeder Request einen eigenen Interpreter d h bei mehreren parallelen Requests befinden sich entsprechend mehrere Kopien des Interpreters im Arbeitsspeicher des Servers CGI ist zwar durch seine Einfachheit Unabhangigkeit von der Programmiersprache und weitreichende Unterstutzung durch praktisch alle Webserver sehr weit verbreitet jedoch fuhrt der erwahnte Overhead zu einer hohen Latenzzeit und bei stark ausgelasteten Servern schnell zu einer Uberlastung Im Unterschied dazu wird bei FastCGI das auszufuhrende Programm inkl Interpreter falls notig nur einmal geladen und steht dann fur mehrere Requests zur Verfugung egal ob vom selben Client oder von unterschiedlichen Clients Die Kommunikation mit dem Webserver erfolgt dabei nicht durch Umgebungsvariablen und Standardein ausgabe sondern uber Unix Domain Sockets oder TCP Netzwerkverbindungen d h das Programm kann sogar auf einem anderen Rechner laufen Programmiertechnisch lasst sich der Unterschied zu CGI Programmen daran festmachen dass ein FastCGI Programm eine zentrale Schleife hat die Requests entgegennimmt und durchaus so lange laufen kann wie der Webserver use FCGI var foo while FCGI accept gt 0 http Request bearbeiten Wahrend des Durchlaufens dieser Schleife bleiben Variablen im Speicher erhalten was einerseits weitere Optimierungsmoglichkeiten gegenuber CGI Programmen ermoglicht andererseits eine sorgfaltigere Programmierung erfordert um Speicherlecks memory leaks zu vermeiden Funktionsweise BearbeitenDie Kommunikation mit dem Webserver erfolgt paketorientiert und verbindungslos Ein Datenpaket enthalt im Header die FastCGI Protokollversion den Nachrichtentyp entspricht weitgehend den aus CGI bekannten Datenquellen ein Paket kann u a transportieren die CGI Umgebungsvariablen den Inhalt der Standardeingabe fur POST oder den Inhalt der Standardausgabe fur die Ausgabe an den Client eine Request ID und die Lange der folgenden Daten Mehrere Clients konnen gleichzeitig bedient werden da sie sich anhand der Request ID unterscheiden lassen darum ist im Unterschied zu CGI nur eine Programminstanz notig um viele Clients zu bedienen Weblinks BearbeitenFastCGI Spezifikation englisch Webserver SchnittstellenProtokolle CGI SCGI FastCGI AJPAPIs C NSAPI C ASAPI C ISAPI Java Servlet ASP NET Python WSGI Ruby Rack JavaScript JSGI Perl PSGI Lua WSAPI Apache Module mod jk mod lisp mod parrot mod perl mod php mod python mod wsgi mod ruby Phusion Passenger Web APIs WSDL XML RPC SOAP REST Abgerufen von https de wikipedia org w index php title FastCGI amp oldid 235831186