Con quali metodi il server www comunica i dati di input al gateway? Le specifiche del CGI prevedono tre diversi metodi:

Nelle prossime pagine vedremo in dettaglio come funziona ognuno di questi metodi. Per il momento, invece, vediamo in base a quali elementi il server sceglie il metodo da adottare per la comunicazione con il gateway.
Osserviamo la parte destra della figura, in cui compaiono le frecce verdi: se il metodo con il quale il client ha passato i parametri al server è il POST, allora il server passa i parametri al gateway necessariamente tramite lo standard input. Se invece il metodo con il quale il client ha passato i parametri al server è il GET, allora ci sono due alternative: la stringa dei parametri contiene il carattere "=" (e quindi contiene coppie nome=valore) oppure no. Nel primo caso il passaggio dei parametri avviene tramite variabili d'ambiente, nel secondo tramite la linea di comando.
Dal punto di vista del client (parte sinistra della figura, frecce rosse), sappiamo che il metodo POST viene usato esclusivamente a seguito della compilazione di una form (modulo). Le form sono descritte nelle pagine dedicate al linguaggio html. Qui è sufficiente ricordare che all'interno della form è specificato se il client dovrà inoltrare al server i dati immessi dall'utente, tramite una GET o un POST. Questa è la sola occasione che il client www ha di usare il metodo POST. Viceversa il metodo GET è il metodo comune di accesso ai file messi a disposizione dal server, quindi il server potrà ricevere una chiamata GET sia nel caso che sia stato compilata una form che lo imponga (e allora necessariamente i dati di input sono in coppie nome=valore) sia nel caso che l'utente abbia eseguito una chiamata diretta all'indirizzo del gateway specificando i parametri dopo il nome del programma (es: "http://www.inf.uniroma3.it/cgi-bin/my_prog?par1=val1&par2=val2"). In questo caso è previsto che l'utente possa inserire i parametri separandoli con un segno "+", senza porli in coppie nome=valore (es: "http://www.inf.uniroma3.it/cgi-bin/my_prog?val1+val2").
Dunque per riassumere il flusso dei dati di input può seguire quattro strade distinte: Si noti che generalmente il gateway program accetta dati in input in un modo solo, e che dunque chi richiede il servizio del gateway program deve conoscere il programma e sapere come passargli i dati di input in maniera da non generare un errore.

pagina precedente    prossima pagina