Hypertext Transfer Protocol: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Segnalazione stub |
Traduzione della corrispondente pagina della versione inglese |
||
Riga 16:
'''HTTP''' è l'acronimo di ''HyperText Transfer Protocol''. Usato come metodo primario per la trasmissione di informazioni sul [[World Wide Web|web]]. Le specifiche del protocollo sono attualmente in carica al [http://www.w3c.org 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 (computer)|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|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''':
<pre>
GET / HTTP/1.1
Host: www.wikipedia.org
</pre>
La richiesta viene terminata con una riga vuota.
<!-- Note that a newline is sent as a [[carriage return]] followed by a [[line feed]]. In most programming languages, this is called CRLF or \r\n. -->
'''risposta del server''':
<pre>
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
</pre>
(segue il codice HTML della pagina principale del sito www.wikipedia.org)
== Collegamenti esterni ==
* [[Tim Berners-Lee]] 1992 ''internet draft'' http://www.w3.org/Protocols/HTTP/HTTP2.html
* [[RFC]] 2616 (definisce il protocollo HTTP 1.1) http://www.w3.org/Protocols/rfc2616/rfc2616.html
* [http://www.delorie.com/web/headers.html visualizzatore degli ''header HTTP'' inviati da un server web]
|