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: