FastCGI è un’estensione di Common Gateway Interface (CGI) che è stata sviluppata da una società ormai defunta chiamata Open Market. FastCGI è disponibile gratuitamente come standard aperto. Risolve alcune carenze nella CGI che limitano le prestazioni.
A differenza di CGI, FastCGI non crea un nuovo processo per ogni richiesta, riducendo così al minimo il sovraccarico di creazione e distruzione del processo ogni volta che viene ricevuta una richiesta. Questo sovraccarico può essere aggirato utilizzando API (Application Program Interfaces) come Netscape Server Application Programming Interface (NSAPI) o Internet Server Application Programming Interface (ISAPI), ma poiché queste sono proprietarie, ci sono una curva di apprendimento aggiuntiva e limitazioni nelle lingue supportate essere considerato. Un altro difetto della CGI è il fatto che alcuni casi per il riutilizzo non possono essere ottenuti, come connessioni a database o tecniche di memorizzazione nella cache. La gestione delle richieste può essere fino a 30 volte più veloce utilizzando FastCGI rispetto alla CGI convenzionale.
Con FastCGI, più richieste possono essere gestite su una singola connessione, nota come multiplexing. In alternativa, è possibile utilizzare più connessioni. Le richieste vengono trasmesse utilizzando File Transfer Protocol (FTP) o socket. La stessa connessione viene quindi utilizzata per restituire la risposta.
Sebbene la connessione possa essere chiusa a questo punto, il server Web e il processo persistono. Questo offre molti vantaggi. Ad esempio, significa che il server e il processo dell’applicazione possono essere chiusi o riavviati separatamente.
FastCGI è stato originariamente sviluppato da Open Market e implementato nella sua offerta di server web. Tuttavia, l’interfaccia può essere implementata su qualsiasi server e presto è stata implementata su numerosi altri server Web del settore. FastCGI è altamente compatibile con l’elaborazione distribuita, quindi un’applicazione FastCGI può essere eseguita su un server separato per il server web. Questo offre tutti i vantaggi di aumentare la disponibilità dei sistemi, migliorare la scalabilità e aumentare la sicurezza del sistema perché i componenti sono isolati. Utilizzando FastCGI remoto, c’è meno amministrazione perché la rete interna può gestire l’esecuzione delle applicazioni.
Proprio come un’applicazione CGI può generare una risposta da una richiesta HTTP (Hypertext Transfer Protocol), anche FastCGI può farlo. Gestisce anche attività come la verifica dell’autenticazione e la conversione dei tipi di dati. Queste attività vengono gestite utilizzando ruoli, che possono essere aggiunti ed estesi liberamente.
FastCGI è semplice da capire e funziona con quasi tutti i linguaggi di programmazione. I processi sono isolati, quindi i server non possono subire arresti anomali a causa di problemi specifici dell’applicazione. Qualsiasi applicazione creata con il framework FastCGI è arretrata con i vecchi server che eseguono CGI. Inoltre, la libreria dell’applicazione è progettata per rendere semplice la migrazione delle applicazioni CGI.