- I metodi POST e HEAD di HTTP - |
|||
COSA SERVE PER QUESTO TUTORIAL | |||
Chiedi sul FORUM | Glossario | cognizioni generiche sul funzionamento del web | ||
Come inviare grandi quantità di dati o ottenere meta-informazioni su una pagina | |||
I METODI POST E HEAD I metodi HTTP per inviare quantità di dati sostanziose e ottenere informazioni su una pagina Abbiamo visto finora solamente il metodo GET, ma, come accennato, esistono altri metodi: principalmente POST e HEAD. HEAD è simile in tutto e per tutto a GET se non per il fatto che comunica al server di non inviare il contenuto della risorsa ma solo le intestazioni. Ad esempio è possibile ottenere le informazioni sulla data di modifica di una pagina senza scaricarla completamente grazie alla seguente richiesta: HEAD /pagina.htm HTTP/1.1 Host: localhost Infatti la risposta del server potrebbe ad esempio essere: HTTP/1.1 200 OK Server: Microsoft-IIS/5.1 Date: Fri, 22 Feb 2008 18:36:22 GMT Content-Type: text/html; charset=iso-8859-1 Content-Length: 44820
Il server si limiterà a comunicare le intestazioni per la risorsa, quali
dimensioni, MIME type, codifica, data di modifica e altro, ma non il
contenuto vero e proprio. POST /pagina.htm HTTP/1.1 Host: localhost Content-Type: application/x-www-form-urlencoded Content-Length: 25 saluto=ciao&saluto2=salve Come si può vedere questa richiesta è simile in tutto e per tutto ad una normale richiesta GET se non per il fatto che specifica anche i parametri Content-Length e Content-Type (che in precedenza avevamo visto utilizzare solamente dal server) e dopo due ritorno a capo seguiti da una serie di campi con i relativi valori. Content-Length indica la quantità di dati che si sta per inviare, mentre Content-Type che tipo di dati sono; application/x-www-form-urlencoded indica che i dati rispettano la stessa sintassi che segue il "?" quando si inviano dati tramite URL. In sostanza, la richiesta POST sopra corrisponderebbe a questa richiesta GET: GET /pagina.htm?saluto=ciao&saluto2=salve HTTP/1.1 Host: localhost Come detto, usare POST è più sicuro in quanto i dati inviati con questo metodo non finiscono su statistiche di pubblicità all'interno del sito o comunque in altri log a cui malintenzionati potrebbero accedere. La richiesta POST fatta sopra potrebbe essere formulata dal seguente form HTML: <form method="post" action="http://localhost/pagina.htm"> <input type="text" name="saluto" value="ciao"> <input type="text" name="saluto2" value="salve"> <input type="submit" value="Invia"> </form>
Per ottenere un parametro inviato con POST in PHP si usa $_POST['saluto'],
mentre in ASP .Net Request.Form("saluto"). |
|||
<< INDIETRO | by VeNoM00 |