Common Gateway Interface

Da Wikipedia, l'enciclopedia libera.
Vai a: navigazione, cerca

Common Gateway Interface (acronimo CGI, in italiano: interfaccia comune, nel senso di standard, per gateway), è una tecnologia standard usata dai web server per interfacciarsi con applicazioni esterne.

Ogni volta che un client richiede al web-server un URL corrispondente ad un documento in puro HTML gli viene restituito un documento statico (come un file di testo); se l'URL corrisponde invece ad un programma CGI, il server lo esegue in tempo reale, generando dinamicamente informazioni.

Indice

[modifica] Utilizzo

Il CGI è la prima forma di elaborazione lato server implementata. Quando ad un web server arriva la richiesta di un documento CGI (solitamente con estensione .cgi, .exe o .pl) il server esegue il programma richiesto e al termine invia al browser l'output del programma. Il file CGI è un semplice programma già compilato (codice oggetto) e la risposta viene acquisita attraverso standard output. L'acquisizione delle variabili d'ambiente avviene attraverso passaggio di parametri sulla riga di comando e attraverso apposite librerie.

CGI è attualmente usato solo con il protocollo HTTP anche se in futuro potrebbe essere esteso ad altri protocolli. La cartella predefinita degli script CGI è /cgi-bin/ su sistemi IIS, anche se a volte è preferibile modificarla, per evitare i frequenti attacchi dai bot sui file in quella cartella.

[modifica] Storia

CGI venne implementato nel 1993 quando il World Wide Web era agli esordi, inizialmente per l'utilizzo con le mailing-list. Gli autori dell'interfaccia e della RFC furono sviluppatori dell'Apache Software Foundation: David Robinson e Ken Coar[1].

La normativa di riferimento è la RFC3875.

[modifica] Linguaggi

I linguaggi usati sono generalmente C/C++ e Perl. Alcuni applicativi utilizzano la tecnologia FastCGI per introdurre nuovi linguaggi di scripting, interpretati e non compilati, come ad esempio PHP. L'altra possibilità è utilizzare librerie, ma variano in base al server web e al sistema operativo utilizzato, diminuendo così la portabilità del software.

[modifica] Note

  1. ^ rfc3875 – http://www.ietf.org/rfc/rfc3875.txt

[modifica] Collegamenti esterni

Strumenti personali
Namespace
Varianti
Azioni
Navigazione
Comunità
Stampa/esporta
Strumenti
Altre lingue