Nelle pagine dedicate al linguaggio html si è mostrato come il protocollo http consenta ad un client www di accedere a dei documenti posseduti dal server www. Il client esegue una GET in cui viene specificato il documento desiderato, ed il server risponde con un messaggio il cui header contiene, tra le altre informazioni, una riga che specifica il formato del documento (per esempio: "Content-type: text/html"), e il cui corpo è costituito dal documento stesso. In questo modo possono essere trasferiti dal server al client sia dei file testo, sia dei file binari (come immagini, suoni, ecc.). Il server www offre al client anche servizi più evoluti: quando il server specifica nella GET l'indirizzo di un programma, il server esegue il programma stesso e rimanda al client il risultato della computazione. In queste pagine viene descritto questo tipo di comunicazione.
I programmi che il server mette a disposizione del client vengono chiamati gateway program (da non confondere con i gateway, intermediate system nelle comunicazioni: qui si parla di programmi e non di macchine). Essi risiedono tutti in una directory particolare che generalmente si chiama "cgi-bin". Il server distingue tra i file da rimandare al client così come sono e i file che invece devono essere eseguiti, solamente in base alla loro collocazione: tutti i file che si trovano nella directory "cgi-bin" vengono eseguiti, gli altri vengono semplicemente trasferiti.
Un file eseguibile ha dei dati di input e dei dati di output. I dati di input (o parametri) devono essere trasferiti dal client al server e dal server al gateway program. I dati di output devono essere trasferiti dal gateway program al server e dal server al client. Il trasferimento dei parametri dal client al server avviene tramite il protocollo http, e più precisamente tramite due possibili metodi: il GET ed il POST, che differiscono per il modo in cui i dati vengono posizionati nel pacchetto:

Il passaggio dei valori così ricevuti tra il server ed il gateway program avviene tramite i metodi descritti nella Common Gateway Interface. CGI si potrebbe tradurre in italiano in "interfaccia comune (standard) per gateway". Nella figura il gateway program è stato disegnato come un rombo di colore verde per evitare la tentazione di collocarlo all'interno della pila ISO-OSI: il gateway è semplicemente un programma eseguibile sulla stessa piattaforma del server www, e non può essere collocato nella pila ISO-OSI se non forzatamente. Forse anche per questo nel nome della specifica CGI non compare la parola "protocollo". In virtù del fatto che la comunicazione con i gateway program avviene tramite le specifiche CGI, questi programmi vengono chiamati anche cgi program, o più semplicemente (e un po' impropriamente) cgi.

torna all'indice   prossima pagina