I metodi HTTP

Un metodo HTTP può considerarsi un comando proprio del protocollo HTTP che il client richiede al server.
Ne esistono vari, ma di fatto i più utilizzati sono GET (per richiedere un file) e POST (per inviare informazioni al server).

GET - Richiede un file al server. La risposta è composta da vari header separati con due Carriage Return dalla risorsa effettivamente richiesta (il file HTML che contiene l'home page del sito). All'inizio della risposta viene specificato il protocollo usato (HTTP/1.1) e lo Status Code che indica l'esito della richiesta fatta (200 OK vuol dire che la richiesta ha avuto successo e il server ha fornito i dati chiesti).
GET / HTTP/1.0
HTTP/1.1 200 OK
Date: Wed, 23 Oct 2002 08:18:47 GMT
Server: Apache/1.3.26 (Unix) PHP/4.2.3
X-Powered-By: PHP/4.2.3
Set-Cookie: PHPSESSID=8fd7c6a69c84da8276187e18a3067b85; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Content-Type: text/html

[Contenuto della pagina HTML..]


HEAD - Richiede solo l'header, senza la risorsa (il file HTML, l'immagine, ecc.). Di fatto viene usato soprattutto per diagnostica.
HEAD / HTTP/1.0
HTTP/1.1 200 OK
Date: Wed, 23 Oct 2002 08:31:36 GMT
Server: Apache/1.3.26 (Unix) PHP/4.2.3
X-Powered-By: PHP/4.2.3
Set-Cookie: PHPSESSID=d0226985ad2282fd9e2d9f6fb868b92a; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Content-Type: text/html


POST - Invia informazioni all'URI specificato. Le informazioni sono presenti in coppie attributo=valore&attributo=valore e vengono processate dal server sulla base di come è configurato e di come è fatto il file a cui vengono postate.
Viene qui riportato il POST di un browser reale, con tutti gli header inviati dal browser stesso e l'inizio delle coppie attributo=valore.
POST /modify/modify.php HTTP/1.1
Host: openskills.info
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9) Gecko/20020513
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1
Accept-Language: en-us, en;q=0.50
Accept-Encoding: gzip, deflate, compress;q=0.9
Accept-Charset: ISO-8859-1, utf-8;q=0.66, *;q=0.66
Keep-Alive: 300
Connection: keep-alive
Cookie: PHPSESSID=fdcb56ecb694a7564dc814b422dd2a7d
Referer: http://openskills.info/modify/modify.php?table=box&IDbox=357&boxtype=infobox&LANGUAGE=ita
Content-Type: application/x-www-form-urlencoded
Content-Length: 2431

IDbox=357&box_title=I+metodi+HTTP&[attributi=valori]


HTTP/1.1 200 OK
Date: Wed, 23 Oct 2002 08:38:51 GMT
Server: Apache/1.3.26 (Unix) PHP/4.2.3
X-Powered-By: PHP/4.2.3
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Keep-Alive: timeout=25, max=85
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html

[HTML della pagina di risposta]


I metodi finora elencati sono comuni sia al protocollo HTTP/1.0 che all'HTTP/1.1, quelli che seguono invece sono esclusivi del HTTP/1.1 e, spesso, non vengono permessi dai server.
Nella configurazione di default di Apache, per esempio, sono disattivati.
Se si prova ad utilizzarli su server che non li permettono si ottiene uno Status code: 405 Method not allowed.
Quando si usa il protocollo HTTP/1.1 è necessario specificare l'host a cui si intende fare la richiesta.

OPTIONS - Richiede l'elenco dei metodi permessi dal server.
OPTIONS * HTTP/1.1
Host: openskills.info


TRACE - Traccia una richiesta, visualizzando come viene trattata dal server.
TRACE * HTTP/1.1
Host: openskills.info


DELETE - Cancella una risorsa (file) sul server. L'utente con cui gira il web server deve poter avere permessi in scrittura sul file indicato e il server deve essere configurato per poterlo fare.
DELETE /info.html HTTP/1.1
Host: openskills.info


PUT - Uploada un file sul server, creandolo o riscrivendolo, con il nome indicato e i contenuti specificati nella parte che segue gli header.
PUT /info.html HTTP/1.1
Host: openskills.info

[Contenuto file]

Privacy Policy