Che cos'è un FastCGI?
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 in CGI che limitano le prestazioni.
A differenza di CGI, FastCGI non crea un nuovo processo per ogni richiesta, riducendo così al minimo le spese generali di creazione e distruzione del processo ogni volta che viene ricevuta una richiesta. Questo sovraccarico può essere aggirato utilizzando le API (Application Program Interface) come NAPS (Application Programming Interface) di Netscape Server o ISAPI (Internet Programming Interface) di Internet Server, ma poiché questi sono proprietari, ci sono ulteriori curve di apprendimento e limitazioni nelle lingue supportate essere considerato. Un altro difetto del CGI è il fatto che alcuni casi di 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 al CGI convenzionale.
Con FastCGI, è possibile gestire più richieste su una singola connessione, nota come multiplexing. In alternativa, è possibile utilizzare più connessioni. Le richieste vengono trasmesse utilizzando FTP (File Transfer Protocol) o socket. La stessa connessione viene quindi utilizzata per restituire la risposta.
Anche se la connessione potrebbe 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. L'interfaccia può essere implementata su qualsiasi server, tuttavia, e presto è stata implementata su un numero di altri server Web del settore. FastCGI è altamente compatibile con il calcolo distribuito, quindi un'applicazione FastCGI può essere eseguita su un server separato per il servizio web. Ciò offre tutti i vantaggi di migliorare la disponibilità dei sistemi, migliorare la scalabilità e aumentare la sicurezza del sistema perché i componenti sono isolati. Usando FastCGI remoto, si ha meno amministrazione perché la rete interna può gestire l'esecuzione di applicazioni.
Proprio come un'applicazione CGI può generare una risposta da una richiesta HTTP (Hypertext Transfer Protocol), anche FastCGI. Gestisce anche attività come la verifica dell'autenticazione e la conversione dei tipi di dati. Queste attività vengono gestite tramite ruoli, che possono essere aggiunti ed estesi liberamente.
FastCGI è semplice da comprendere e funziona con quasi tutti i linguaggi di programmazione. I processi sono isolati, quindi i server non possono essere bloccati da 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 semplificare la migrazione delle applicazioni CGI.