FastCGI este o extensie a Common Gateway Interface (CGI) care a fost dezvoltată de o companie dispărută numită Open Market. FastCGI este disponibil gratuit ca standard deschis. Acesta abordează anumite deficiențe ale CGI care limitează performanța.
Spre deosebire de CGI, FastCGI nu creează un proces nou pentru fiecare cerere, reducând astfel la minimum costul general de creare și distrugere a procesului de fiecare dată când este primită o solicitare. Această suprasarcină poate fi ocolită utilizând interfețe de program de aplicație (API) precum Netscape Server Application Programming Interface (NSAPI) sau Internet Server Application Programming Interface (ISAPI), dar deoarece acestea sunt proprietare, există o curbă de învățare suplimentară și limitări în limbile acceptate. a fi considerat. Un alt neajuns al CGI este faptul că anumite cazuri de reutilizare nu pot fi obținute, precum conexiunile la baze de date sau tehnicile de caching. Gestionarea cererilor poate fi de până la 30 de ori mai rapidă folosind FastCGI decât CGI convențional.
Cu FastCGI, cererile multiple pot fi gestionate printr-o singură conexiune, care este cunoscută sub numele de multiplexare. Alternativ, pot fi utilizate mai multe conexiuni. Solicitările sunt transmise utilizând protocolul de transfer de fișiere (FTP) sau socket-uri. Aceeași conexiune este apoi folosită pentru a returna răspunsul.
Deși conexiunea ar putea fi închisă în acest moment, serverul web și procesul persistă în continuare. Acest lucru oferă multe avantaje. De exemplu, înseamnă că serverul și procesul aplicației pot fi oprite sau repornite separat.
FastCGI a fost dezvoltat inițial de Open Market și implementat în oferta sa de server web. Cu toate acestea, interfața poate fi implementată pe orice server și a fost în curând instalată pe o serie de alte servere web din industrie. FastCGI este foarte compatibil cu calcularea distribuită, astfel încât o aplicație FastCGI poate rula pe un server separat de serverul web. Acest lucru oferă toate avantajele creșterii disponibilității sistemelor, îmbunătățirii scalabilității și creșterii securității sistemului, deoarece componentele sunt izolate. Prin utilizarea FastCGI la distanță, există mai puțină administrare, deoarece rețeaua internă poate gestiona rularea aplicațiilor.
Așa cum o aplicație CGI poate genera un răspuns de la o solicitare HTTP (Hypertext Transfer Protocol), la fel poate și FastCGI. De asemenea, se ocupă de sarcini precum verificarea autentificării și conversia tipurilor de date. Aceste sarcini sunt gestionate folosind roluri, care pot fi adăugate și extinse liber.
FastCGI este simplu de înțeles și va rula cu aproape orice limbaj de programare. Procesele sunt izolate, astfel încât serverele nu pot fi blocate din cauza problemelor specifice aplicației. Orice aplicație construită cu cadrul FastCGI este înapoi cu servere vechi care rulează CGI. În plus, biblioteca de aplicații este concepută pentru a simplifica migrarea aplicațiilor CGI.