O protocolo  HTTP Das HTTP Protokoll Le protocole HTTP El protocolo HTTP The HTTP protocol

Introduzione al protocollo HTTP

Il protocollo HTTP (HyperText Transfer Protocol) è il protocollo più usato su internet dal 1990. La versione 0.9 era destinata solo ai trasferimenti di dati su internet (in particolare delle pagine web scritte in HTML. La versione 1.0 del protocollo (la più usata) permette ormai di trasferire dei messaggi con delle intestazioni che descrivono il contenuto del messaggio utilizzando una codificazone si tipo MIME.

Lo scopo del protocollo HTTP è di permettere un trasferimento di file (essenzialmente in formato HTML) localizzati grazie ad una stringa di caratteri dettaURL tra un navigatore (il client) e un server web (detto http d sui terminali UNIX).

Comunicazione tra navigatore e server

La comunicazione tra il navigatore e il server avviene in due tempi :

Communication entre navigateur et serveur

  • Il navigatore effettua una richiesta HTTP
  • Il server tratta la richiesta poi invia una risposta HTTP
In realtà la comunicazione si effettua in più tempi se si considera il trattamento della richiesta dal server. Dato che si interessa solamente al protocollo HTTP, il trattamento del lato server non sarà esplicito in questo articolo…
Se siete interessati a questo soggetto, fate riferimento all'articolo sul trattamento delle CGI.

richiesta HTTP

Una richiesta HTTP è un insieme di linee inviate al server dal navigatore. Essa comprende :

  • Una linea di richiesta: è una linea che precisa il tipo di documento richiesto, il metodo che deve essere applicato, e la versione del protocollo usato. La linea comprende tre elementi che devono essere separati da uno spazio :
    • Il metodo
    • L'URL
    • La versione del protocollo usato dal client (generalmente HTTP/1.0)
  • I campi d'intestazione della richiesta: si tratta di un insieme di linee facoltative che permettono di dare delle informazioni supplementari sulla richiesta e/o il client (Navigatore, sistema operativo,…). Ognuna di queste linee è composta da un nome che qualifica il tipo di intestazione, seguito da due punti (:) e dal valore dell'intestazione
  • Il corspo della richiesta: è un'insieme di linee opzionali che devono essere separate dalle linee precedenti da una linea vuota e che permettono ad esempio l'invio di dati con un comando POST al momento dell'invio dei dati al server con un formulario

Una richiesta HTTP ha quindi la seguente sintassi (<crlf> significa ritorno a capo o salto di linea) :

METODO URL VERSIONE<crlf>
INTESTAZIONE : Valore<crlf>
.
.
.
INTESTAZIONE : Valore<crlf>
Linea vuota<crlf>
CORPO DELLA RICHIESTA

Qui di seguito un esempio di richiesta HTTP :

GET http://it.kioskea.net HTTP/1.0
Accept : text/html
If-Modified-Since : Saturday, 15-January-2000 14:37:11 GMT
User-Agent : Mozilla/4.0 (compatible; MSIE 5.0; Windows 95)

Comandi

Comandi Descrizione
GET Richiesta della risorsa situata ad un URL specifico
HEAD Richiesta dell'intestazione della risorsa posta ad un URL specifico
POST Invio di dati al programma posto ad un URL specifico
PUT Invio di dati all'URL specifico
DELETE Soppressione della risorsa posta all'URL specifico

Intestazioni

Nome dell'intestazione Descrizione
Accept Tipo di contenuto accettato dal browser (ad esempio text/html). Vedere tipi MIME
Accept-Charset Combinazione di caratteri attesa dal browser
Accept-Encoding Codifica di dati accettata dal browser
Accept-Language Linguaggio atteso dal browser (inglese di default)
Authorization Identificazione del browser presso il server
Content-Encoding Tipo di codifica del corpo del testo
Content-Language Tipo di linguaggio del corpo della richiesta
Content-Length Lunghezza del corpo della richiesta
Content-Type Tipo di contenuto del corpo della richiesta (ad esempio text/html). Vedere tipi MIME
Date Data di inizio del trasferimento dei dati
Forwarded Usato dai terminali intermedi tra il browser e il server
From Permette di specificare l'indirizzo e-mail del client
From Permette di specificare che il documento deve essere inviato se è stato modificato dopo una certa data
Link Relazione tra due URL
Orig-URL URL d'origine della richiesta
Referer URL del link a partire dal quale la richiesta è stata effettuata
User-Agent Stringa che da informazioni sul client, come il nome e la versione del navigatore, del sistema operativo

risposta HTTP

Una risposta HTTP è un insieme di linee inviate dal server al navigatore. Essa comprende :

  • una linea di stato: è una linea che precisa la versione del protocollo usata e lo stato di trattamento della richiesta attraverso un codice e un testo eplicativo. La linea comprende tre elementi che devono essere separati da uno spazio :
    • La versione del protocollo usata
    • Il codice dello stato
    • Il significato del codice
  • I campi d'intestazione della risposta: si tratta di un insieme di linee facoltative che permettono di dare delle informazioni supplementari sulla risposta e/o il server. Ognuna di queste linee è composta da un nome che qualifica il tipo di intestazione, seguito da due punti (:) e dal valore dell'intestazione
  • Il corpo della risposta: contiene il documento richiesto

Una risposta HTTP a la seguente sintassi (<crlf> significa ritorno a capo o salto di linea) :

VERSIONe-HTTP CODICE SPIEGAZIONE<crlf>
INTESTAZIONE : Valore<crlf>
.
.
.
INTESTAZIONE: Valore<crlf>
Linae vuota<crlf>
CORPO DELLA RISPOSTA

Qui di seguito un esempio di risposta HTTP :

HTTP/1.0 200 OK
Date : Sat, 15 Jan 2000 14:37:12 GMT
Server : Microsoft-IIS/2.0
Content-Type : text/HTML
Content-Length : 1245
Last-Modified : Fri, 14 Jan 2000 08:25:13 GMT

Intestazioni di risposta

Nome dell'intestazione Descrizione
Content-Encoding Tipo di codifica del corpo della risposta
Content-Language Tipo di linguaggio del corpo della risposta
Content-Length Lunghezza del corpo della risposta
Content-Type Tipo del contenuto del corpo della risposta (ad esempio text/html). Vedere tipi MIME
Date Data di inizio del trasferimento dei dati
Expires Data limite di comsumo dei dati
Forwarded Usato dai terminali intermedi tra il browser e il server
Location Redirezione verso un nuovo URL associato al documento
Server Caratteristiche del server che ha inviato la risposta

I codici di risposta

Sono i codici che vedete quando il navigatore non riesce a fornire la pagina richiesta. Il codice di risposta è costituito da tre cifre : la prima indica la classe dello statto e le seguenti la natura esatta dell'errore.

Codice Messaggio Descrizione
10x Messagio di informazione Questi codici non sono usati nella versione 1.0 del protocollo
20x Riuscito Questi codici indicano il buon svolgimento della transazione
200 OK La rischiesta si è compiuta correttamente
201 CREATED Esso segue un comando POST, e indica la riuscita, il corpo del resto del documento ed è previsto che indichi l'URL nel quale il documento appena creato dovrebbe trovarsi.
202 ACCEPTED La richiesta è stata accettata, ma la procedura successiva non è stata effettuata
203 PARTIAL INFORMATION Quando si riceve questo codice in risposta ad un comando GET, indica che la risposta non è stata completata.
204 NO RESPONSE Il server ha ricevuto la richiesta ma non ha l'informazione da rinviare
205 RESET CONTENT Il server indica al navigatore di sopprimere il contenuto dei campi di un formulario
206 PARTIAL CONTENT Si tratta di una risposta ad una richiesta che comporta l'intestazione range. Il server deve quindi indicare l'intestazione content-Range
30x Redirection Questi codici indicano che la risorsa non è più nel posto indicato
301 MOVED I dati richiesti sono stati trasferiti ad un nuovo indirizzo
302 FOUND I dati richiesti sono ad un nuovo URL, ma potrebbero essere stai spostati da…
303 METHOD questo implica che il client debba provare un nuovo indirizzo, usando di preferenza un altro metodo diverso dal GET
304 NOT MODIFIED Se il client a effettuato un ordine GET condizionale ( richiedendo se il documento è stato modificato rispetto all'ultima volta) e che il documento non è stato modificato, esso rinvia il codice.
40x Errrore dovuto al client Questi codici indicano che la richiesta non è corretta
400 BAD REQUEST La sintassi della richiesta è mal formulata oppure è impossibile da soddisfare
401 UNAUTHORIZED Il parametro del messaggio da le specifiche delle forme di autorizzazione accettabili. Il client deve riformulare la sua richiesta con i dati d'autorizzazione corretti.
402 PAYMENT REQUIRED Il client deve riformulare la sua richiesta con i dati di pagamento corretti
403 FORBIDDEN L'accesso alla risorsa è stato semplicemente vietato
404 NOT FOUND Classico! Il server non ha trovato niente all'indirizzo specificato. Partito senza lasciare un recapito…:)
50x Errore dovuto al server Questi codici indicano che vi è un errore interno al server
500 INTERNAL ERROR Il server a riscontrato una condizione inattesa che gli ha impedito di dare seguito alla richiesta (ne capitano di cose strane ai server…)
501 NOT IMPLEMENTED Il server non supporta il servizio richiesto (non può sapere fare tutto…)
502 BAD GATEWAY Il server ha ricevuto una risposta non valida dalla parte del server al quale ha cercato di accedere agendo come passerella o proxy
503 SERVICE UNAVAILABLE Il server non può rispondervi in questo istante, dato che il traffico è troppo intenso (tutte le linee della vostra corrispondenza sono occupate, vogliate richiamare più tardi)
504 GATEWAY TIMEOUT La risposta del server è troppo lunga rispetto al tempo durante il quale la passerella era pronta ad aspettarlo (il tempo che vi eravate dato è ora scaduto…)

Ulteriori informazioni

Per ulteriori informazioni sul protocollo HTTP, la cosa migliore è riferirsi alla RFC 1945 che spiega in maniera dettagliata il protocollo :

  • RFC 1945 - Hypertext Transfer Protocol -- HTTP/1.0 (traduction française)
  • RFC 1945 - Hypertext Transfer Protocol -- HTTP/1.0 (version originale)
  • RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1 (version originale)
  • Cookies


Ultime modificazione ilvenerdì 6 febbraio 2009 alle 16:51:56.Questo documento intitolato «  » da Kioskea (it.kioskea.net) è reso disponibile sotto la licenza Creative Commons. È possibile copiare, modificare le copie di questa pagina, alle condizioni previste dalla licenza, come questa nota appare chiaramente.
Migliori risposte per « Il protocollo HTTP » in :
Webmastering - I linguaggi del web Vedi Introduzione al web Il termine « web » designa il servizio internet che permette di navigare attraverso le pagine web. Il protocollo usato per questo tipo di comunicazione e il protocollo HTTP (HyperText Transfer Protocol), il che spiega perché...
Criptografia - Secure HTTP (S-HTTP) Vedi Introduzione a S-HTTP S-HTTP (Secure HTTP, che significa Protocollo HTTP sicuro) è una procedura di sicurezza delle transazioni HTTP che si basa su un miglioramento del protocollo HTTP messo a punto nel 1994 dall'EIT (Enterprise Integration...
Attacchi da falsificazione di dati Vedi La maggiorparte degli attacchi d'applicazioni web consistono nel sollecitare il sito con i dati inseriti manualmente per provocare un contesto non previsto. Parametri delle applicazioni web Il protocollo HTTP, supporto della comunicazione sul...
Il protocollo BitTorrent VediIl protocollo BitTorrent 1. Legalità 2. Il principio 3. Funzione 4. Trasparenza della vita privata 5. I software Indirizzi supplementari 1. Legalità Attenzione ! Fondamentalmente, il BitTorrent è legale. Ma la sua procedura è a volte...
Lettori Video e Audio Gratuiti Vedii codec da installare affinché Win Media Player possa riprodurre Xvid : http://www.emule-speed.com/dl/XviD.exe MPC MPEG+ Audio per WMP : RadLight MPC DirectShow Filter DivX Player (win XP e 2000) : DivX codecs Real One Player (Win...
[Outlook Express] consultare casella Hotmail o MSN VediÈ possibile trasferire i propri messaggi di un account MSN o Hotmail utilizzando il client di posta elettronica di Outlook Express 5 o superiore. Attenzione: dal primo trimestre del 2005 questa opzione non è più gratuita Impostazione di Outlook...
Download DivX VediDivX, famoso lettore video della DivX Inc. DivX 7, integra oltre al player, un web player, un convertitore, dei codec, un programma per masterizzazione filmati divx su CD/DVD che vengono letti su diversi piattaforme (PC, lettori DVD...). è...
Il protocollo FTP (File Transfer Protocol) VediIntroduzione al protocollo FTP Il protocollo FTp ( File Transfer Protocol), è, come indicato dal suo nome, un protocollo di trasferimento di file.La creazione del protocollo FTP data 1971, anno nel quale un meccanismo di trasferimento di file...
Il protocollo SNMP VediDefinizione del termine SNMP SNMP significa Simple Network Management Protocol (tradotto protocollo semplice di gestione di rete). Si tratta di un protocollo che permette agli amministratori di rete di gestire le apparecchiature di rete e di...
Il protocollo IP VediIl ruolo del protocollo IP Il protocollo IP fa parte del livello internet della serie di protocolli TCP/IP. E' uno dei protocolli più importanti di internet dato che permette l'elaborazione e il trasporto dei datagrammi IP (i pacchetti di dati),...