Hypertext Transfer Protocol

protocollo applicativo per la trasmissione d'informazioni sul web
Versione del 31 mar 2004 alle 15:50 di Maxferrario (discussione | contributi) (Traduzione della corrispondente pagina della versione inglese)


HTTP è l'acronimo di HyperText Transfer Protocol. Usato come metodo primario per la trasmissione di informazioni sul web. Le specifiche del protocollo sono attualmente in carica al World Wide Web Consortium (W3C).

Si tratta di un protocollo di richiesta/risposta tra client e server. Un client HTTP, ad esempio un browser, inizia la sua richiesta connettendosi ad una porta TCP/IP: si tratta tipicamente della porta 80, anche se vengono talvolta utilizzate porte alternative, come la 81 o la 8080. Una volta stabilita la connessione il client invia una stringa di richiesta, ad esempio "GET / HTTP/1.1" (che in questo caso corrisponde alla richiesta della pagina di default, o home page, del server web). Il server a sua volta risponde inviando un file o un messaggio di errore (nel caso, ad esempio, che la pagina richiesta non esista). La risposta del server è preceduta da un'intestazione HTTP (detta HTTP header), cioè da un insieme di stringhe di caratteri ASCII che contengono informazioni sul server stesso e sul file che viene inviato. Il protocollo HTTP è definito nella RFC 2068.

HTTP differisce da altri protocolli basati su TCP, come FTP, per il fatto che le connessioni vengono generalmente chiuse una volta che una particolare richiesta (o una serie di richieste correlate) è stata soddisfatta. Questo comportamento rende il protocollo HTTP ideale per il World Wide Web, in cui le pagine molto spesso contengono dei collegamenti (link) a pagine ospitate da altri server. Talvolta però pone problemi ai Web designers, perchè l'assenza di una connessione persistente costringe ad utilizzare dei metodi alternativi per conservare lo stato dell'utente. Spesso questi metodi alternativi si basano sull'uso dei cookie HTTP.

Esiste anche una versione sicura del protocollo HTTP: chiamata HTTPS, usa vari sistemi di crittografia per rendere la comunicazione comprensibile solo a client e server.

Esempio di comunicazione HTTP tra client e server

Cconversazione di esempio tra un client ed il server web www.wikipedia.org

richiesta del client:

GET / HTTP/1.1
Host: www.wikipedia.org

La richiesta viene terminata con una riga vuota.



risposta del server:

HTTP/1.1 200 OK
Content-Length: 3059
Server: GWS/2.0
Date: Sat, 11 Jan 2003 02:44:04 GMT
Content-Type: text/html
Cache-control: private
Set-Cookie: PREF=ID=73d4aef52e57bae9:TM=1042253044:LM=1042253044:S=SMCc_HRPCQiqy
X9j; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; ___domain=.google.com
Connection: keep-alive

(segue il codice HTML della pagina principale del sito www.wikipedia.org)

Collegamenti esterni