Hvad er en FastCGI?
FastCGI er en udvidelse af Common Gateway Interface (CGI), der blev udviklet af et nu nedlagt selskab kaldet Open Market. FastCGI er frit tilgængelig som en åben standard. Den adresserer visse mangler ved CGI, der begrænser ydelsen.
I modsætning til CGI opretter FastCGI ikke en ny proces for hver anmodning, hvilket minimerer overhead for processoprettelse og destruktion hver gang en anmodning modtages. Denne overhead kan omgås ved hjælp af Application Program Interfaces (APIs) såsom Netscape Server Application Programming Interface (NSAPI) eller Internet Server Application Programming Interface (ISAPI), men da disse er proprietære, er der en ekstra indlæringskurve og begrænsninger på understøttede sprog tages op til overvejelse. En anden mangel ved CGI er det faktum, at visse sager til genbrug ikke kan opnås, såsom forbindelser til databaser eller cacheteknikker. Anmodning om håndtering kan være op til 30 gange hurtigere ved hjælp af FastCGI i forhold til konventionel CGI.
Med FastCGI kan flere anmodninger håndteres via en enkelt forbindelse, der kaldes multiplexing. Alternativt kan flere forbindelser bruges. Forespørgsler sendes ved hjælp af File Transfer Protocol (FTP) eller stikkontakter. Den samme forbindelse bruges derefter til at returnere svaret.
Selvom forbindelsen muligvis er lukket på dette tidspunkt, fortsætter webserveren og processen stadig. Dette giver mange fordele. For eksempel betyder det, at serveren og applikationsprocessen kan lukkes eller genstartes separat.
FastCGI blev oprindeligt udviklet af Open Market og implementeret i sit webserverudbud. Interfacet kan imidlertid implementeres på enhver server, og det var snart på plads på en række andre industri-webservere. FastCGI er yderst kompatibel med distribueret computing, så et FastCGI-program kan køre på en separat server til webserveren. Dette giver alle fordelene ved at forbedre tilgængeligheden af systemer, forbedre skalerbarheden og øge systemsikkerheden, fordi komponenterne er isoleret. Ved at bruge ekstern FastCGI er der mindre administration, fordi det interne netværk kan håndtere kørslen af applikationer.
Ligesom en CGI-applikation kan generere et svar fra en HTTP-anmodning om Hypertext Transfer Protocol, så kan FastCGI også. Det håndterer også opgaver såsom bekræftelse af godkendelse og konvertering af datatyper. Disse opgaver håndteres ved hjælp af roller, som kan tilføjes og udvides frit.
FastCGI er let at forstå og kører med næsten ethvert programmeringssprog. Processer er isoleret, så servere ikke kan gå ned af applikationsspecifikke problemer. Enhver applikation, der er bygget med FastCGI-rammen, er bagud med gamle servere, der kører CGI. Desuden er applikationsbiblioteket designet til at gøre overførslen af CGI-applikationer enkel.