Vedi anche FastCGI.
La Common Gateway Interface (CGI) è un modo standard per un server Web di passare la richiesta di un utente Web a un programma applicativo e di ricevere i dati da inoltrare all'utente. Quando l'utente richiede una pagina Web (ad esempio, facendo clic su una parola evidenziata o inserendo l'indirizzo di un sito Web), il server restituisce la pagina richiesta. Tuttavia, quando un utente compila un modulo su una pagina Web e lo invia, in genere deve essere elaborato da un programma applicativo. Il server Web in genere passa le informazioni del modulo a un piccolo programma applicativo che elabora i dati e può inviare un messaggio di conferma. Questo metodo o convenzione per passare i dati avanti e indietro tra il server e l'applicazione è chiamato CGI (Common Gateway Interface). Fa parte del protocollo HTTP (Hypertext Transfer Protocol) del Web.
Se si crea un sito Web e si desidera che un'applicazione CGI abbia il controllo, specificare il nome dell'applicazione nell'URL (Uniform Resource Locator) codificato in un file HTML. Questo URL può essere specificato come parte dei tag FORMS se stai creando un modulo. Ad esempio, potresti codificare:
e il server su "mybiz.com" passerebbe il controllo all'applicazione CGI chiamata "formprog.pl" per registrare i dati inseriti e restituire un messaggio di conferma. (Il ".pl" indica un programma scritto in PERL ma potrebbero essere stati usati altri linguaggi.)
L'interfaccia del gateway comune fornisce un modo coerente per il trasferimento dei dati dalla richiesta dell'utente al programma applicativo e di nuovo all'utente. Ciò significa che la persona che scrive il programma applicativo può assicurarsi che venga utilizzato indipendentemente dal sistema operativo utilizzato dal server (PC, Macintosh, UNIX, OS / 390 o altri). È semplicemente un modo di base per trasferire le informazioni dal server Web sulla tua richiesta al programma applicativo e viceversa.
Poiché l'interfaccia è coerente, un programmatore può scrivere un'applicazione CGI in un numero di lingue diverse. I linguaggi più popolari per le applicazioni CGI sono: C, C ++, Java e PERL.
Un'alternativa a un'applicazione CGI è la pagina ASP (Active Server Page) di Microsoft, in cui uno script incorporato in una pagina Web viene eseguito sul server prima che la pagina venga inviata.