Con quali metodi il server www
comunica i dati di input al gateway? Le specifiche del CGI prevedono tre
diversi metodi:
-
passaggio di parametri sulla linea
di comando
-
passaggio di parametri tramite variabili
d'ambiente
-
passaggio di parametri tramite standard
input
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:
-
L'utente ha eseguito una chiamata
diretta all'URL ponendo i parametri in coda al nome del programma in coppie
nome= valore (prima freccia rossa in alto, seconda freccia verde). L'esito
è un passaggio di parametri tra il server ed il gateway tramite
variabili d'ambiente.
-
L'utente ha eseguito una chiamata
diretta all'URL ponendo i parametri in coda al nome del programma, senza
però comporli in coppie nome=valore (prima freccia rossa in alto,
prima freccia verde in alto). L'esito è un passaggio di parametri
tra il server ed il gateway sulla linea di comando.
-
L'utente ha compilato una form che
impone l'uso del metodo GET per la risposta (seconda freccia rossa, seconda
freccia verde). Esito: il server passa i dati al gateway tramite variabili
d'ambiente.
-
L'utente ha compilato una form che
impone l'uso del metodo POST per la risposta (terza freccia rossa in basso,
terza freccia verde in basso). Esito: il server passa i dati al gateway
tramite lo standard input.
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