Vad är en FastCGI?

FastCGI är en förlängning av Common Gateway Interface (CGI) som utvecklades av ett numera nedlagt företag som heter Open Market. FastCGI är fritt tillgänglig som en öppen standard. Den åtgärdar vissa brister i CGI som begränsar prestandan.

Till skillnad från CGI skapar FastCGI inte en ny process för varje förfrågan, vilket minimerar kostnaden för processskapande och förstörelse varje gång en förfrågan tas emot. Denna overhead kan kringgås genom att använda Application Program Interfaces (API) som Netscape Server Application Programming Interface (NSAPI) eller Internet Server Application Programming Interface (ISAPI), men eftersom dessa är proprietära finns det ytterligare en inlärningskurva och begränsningar i språk som stöds att betraktas. En annan brist med CGI är det faktum att vissa fall för återanvändning inte kan erhållas, såsom kopplingar till databaser eller cachningsteknik. Begäran kan hanteras så mycket som 30 gånger snabbare med FastCGI jämfört med konventionell CGI.

Med FastCGI kan flera förfrågningar hanteras över en enda anslutning, vilket är känt som multiplexering. Alternativt kan flera anslutningar användas. Förfrågningar överförs med File Transfer Protocol (FTP) eller sockets. Samma anslutning används sedan för att returnera svaret.

Även om anslutningen kan vara stängd vid denna tidpunkt, fortsätter webbservern och processen fortfarande. Detta ger många fördelar. Det innebär till exempel att servern och applikationsprocessen kan stängas av eller startas om separat.

FastCGI utvecklades ursprungligen av Open Market och implementerades i dess webbservererbjudande. Gränssnittet kan dock implementeras på vilken server som helst, och det var snart på plats på ett antal andra webbservrar inom branschen. FastCGI är mycket kompatibel med distribuerad datoranvändning, så en FastCGI-applikation kan köras på en separat server till webbservern. Detta erbjuder alla fördelar med att förbättra tillgängligheten av system, att förbättra skalbarheten och att öka systemsäkerheten eftersom komponenterna är isolerade. Genom att använda fjärrstyrd FastCGI blir det mindre administration eftersom det interna nätverket kan hantera körningen av applikationer.

Precis som en CGI-applikation kan generera ett svar från en HTTP-förfrågan (Hypertext Transfer Protocol), så kan FastCGI också göra det. Den hanterar även uppgifter som att verifiera autentisering och konvertera datatyper. Dessa uppgifter hanteras med hjälp av roller, som kan läggas till och utökas fritt.
FastCGI är enkel att förstå och kan köras med nästan alla programmeringsspråk. Processer är isolerade, så servrar kan inte krascha av applikationsspecifika problem. Alla applikationer som är byggda med FastCGI-ramverket är bakåtriktade med gamla servrar som kör CGI. Dessutom är applikationsbiblioteket utformat för att göra migreringen av CGI-applikationer enkel.