Corsi on-line
Chiudi
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

Il protocollo HTTP

Articolo scritto da Matteo Petrioli
Pagina 1 di 6

Con questo articolo andremo ad analizzare il protocollo che rappresenta il cuore del Web ovvero l'HTTP.

HTTP è l'acronimo di Hyper Text Transfert Protocol ed è uno dei più importanti e datati protocolli di livello applicativo.
Tutte le volte che un utente richiede una qualsiasi pagina Web utilizza il protocollo HTTP sia per fare la richiesta al server che ospita la pagina sia per ricevere i dati provenienti in risposta dal server.
E' evidente, dunque, che il protocollo HTTP è presente sia nello strato applicativo del Client che in quello del Server altrimenti la comunicazione sopra descritta non avrebbe luogo.

La richiesta da parte del client viene effettuata tramite il browser che gestisce l'intera comunicazione e restituisce a video la risorse richiesta dall'utente. Il browser vede una pagina web come un insieme di oggetti legati tra di loro attraverso collegamenti ipertestuali.
Quindi una pagina web sicuramente sarà formata da un corpo HTML più altre risorse che potrebbero essere script, immagini, applet Java e così via.
Tutte le risorse presenti su un server possono essere raggiunte grazie ad un percorso detto URL che fa riferimento ad uno solo e specifico oggetto. La struttura delle URL è definita da un standard ben preciso e consta di due strutture principali. Prendiamo come esempio la seguente risorsa:

http://www.miosito.it/informazioni/curriculum.html

Esistono due varianti al protocollo: l'HTTP/1.0 più datato e HTTP/1.1 che ora come ora è quello più utlizzato da browser e server web essendo più recente e più performante rispetto alla versione 1.0.

(L'articolo continua più sotto...)

La particolarità del protocollo HTTP è quella di essere definito come uno Stateless Protocol ovvero un protocollo senza stato dato che i server web non mantengono nessun tipo di informazione sui client che hanno richiesto una risorsa.

Il protocollo HTTP si affida al protocollo TCP del livello di trasporto per gestire il trasferimento di dati dal server al client. La scelta di utilizzare il TCP è dovuta al fatto che il TCP garantisce un servizio di trasferimento affidabile dei dati, cosa che non garantisce l'altro protocollo di trasporto che è l'UDP.

L'utilizzare il TCP ha come vantaggio - come abbiamo detto - il trasferimento affidabile dei dati, ma dall'altro comporta un tempo di attesa maggiore per ricevere la risorsa richiesta in quanto il TCP, prima di trasmettere i dati, deve instaurare una connessione in un'operazione che è detta Handshake. Nel caso il lettore volesse approfondire il funzionamento e le caratteristiche del protocollo TCP rimando all'articolo presente su Mr.Webmaster.

Per l'HTTP è fondamentale il trasferimento affidabile dei dati in quanto se non tutto il corpo HTML di una pagina web venisse trasferito al browser, a causa di qualche errore di trasmissione, la pagina richiesta sarebbe impossibile da visualizzare oppure menomata nel suo contenuto.

Come detto precedentemente l'HTTP appartiene al livello applicazione mentre il TCP è un protocollo di livello trasporto. Detto questo: come fa l'HTTP a scambiare i dati con il TCP?
Questo è possibile grazie alle socket che rappresentano il punto di contatto tra il livello applicativo e il livello di trasporto. Ogni applicazione su un determinato host avrà una specifica socket di interfacciamento verso il livello di trasporto, quindi se per esempio un utente richiede una pagina web e contemporaneamente sta inviando una e-mail saranno presenti due socket una che gestiscce lo scambio dati tra HTTP e il livello di trasporto e l'altra tra i protocolli di posta elettronica e il livello di trasporto.

Ipotizziamo adesso che un utente richieda contemporaneamente due pagine web: vengono create due socket distinte? La risposta è no, in quanto la socket fa riferimento ad un processo (in questo caso HTTP) e sarà compito di quesst'ultimo gestire, in maniera autonoma, i pacchetti ricevuti visualizzando le due pagine web richieste separatamente.

Fatta questa rapida panoramica sull'HTTP nel prossimo capitolo entreremo nel vivo della trattazione del protocollo spiegando in che modo viene gestita la richiesta da parte di un client e il conseguente trasferimento dei dati.

Corsi
Corso AJAXCorso AJAX
Applicazioni Web 2.0 basate su AJAX con ASP, ASP.NET e PHP. A partire da 39 €.
Corso PHPCorso PHP
Corso completo per la creazione di siti Web dinamici. A partire da 49 €.
Corso Ruby e Ruby On RailsCorso Ruby e Ruby On Rails
Creare software ed applicazioni Web con Ruby e ROR. A partire da 49 €.
Vedi anche...
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122