Una richiesta POST viene usata per mandare al server
dei dati da processare, di solito tramite uno script CGI. Una
richiesta POST differisce da una richiesta GET per il
fatto che:
- c'è un blocco di dati mandato con la richiesta, nel corpo del
messaggio e degli header extra che descrivono il body, come
Content-Type: e Content-Length:
- l'URI richiesta non è una risorsa da reperire; è di solito un
programma che prende come input i dati inviati
- la risposta è di solito l'output di un programma, non un file
statico
L'uso più comune di POST si ha quando si inviano i
dati di una form HTML ad uno script CGI. In tal caso, l'header
Content-Type: vale
application/x-www-form-urlencoded e l'header
Content-Length: indica la lunghezza dei dati del form
URL-codificati. Lo script CGI riceve il corpo del messaggio tramite
lo STDIN e lo decodifica. Es. di sottomissione di un form tramite
POST:
POST /poll.cgi HTTP/1.0
From: ant@tequila.rett.polimi.it
User-Agent: HTTPTool/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 48
professione=programmatore&sistema+operativo=Unix
|
Per la sottomissione dei dati di una form il metodo POST
andrebbe sempre usato al posto del metodo GET quando i dati sono
molti o ci sono degli effetti permanenti sul server dopo la
sottomissione.
In generale una richiesta POST può essere usata per mandare
qualsiasi tipo di dati, non solo quelli di una form. Occorre solo
assicurarsi che il programma che invia e quello che riceve siano
daccordo sul formato da usare.
|