Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
HTTP
L’HTTP, acronimo di Hyper Text Transfer Protocol (protocollo di trasferimento di un ipertesto), è il principale
standard usato per la trasmissione di informazioni sul Web. In altri termini, HTTP è il linguaggio con cui un
client può richiedere una pagina web a un server e con cui un server risponde a tale richiesta.
Le specifiche del protocollo sono a>ualmente responsabilità di un’organizzazione denominata W3C (World
Wide Web Consor8um). La prima versione effe:vamente disponibile del protocollo, la HTTP/1.0, venne
implementata da Tim Berners-‐Lee nel 1991 e proposta come documento (h>p://www.ie….org/rfc/
rfc1945.txt RFC 1945) all'ente responsabile degli standard (IETF) nel 1996. Con la diffusione di NCSA Mosaic,
un browser grafico di facile uso, il WWW conobbe un successo crescente e divennero eviden8 alcuni limi8
della versione 1.0 del protocollo, in par8colare:
• l'impossibilità di ospitare più si8 www sullo stesso server;
• il mancato riuso delle connessioni disponibili;
• l’insufficienza dei meccanismi di sicurezza.
Il protocollo venne quindi esteso nella versione HTTP/1.1, presentato come RFC 2068 nel 1997 e
successivamente aggiornato nel 1999 come descri>o dal h>p://www.ie….org/rfc/rfc2616.txt RFC 2616.
L'HTTP funziona su un meccanismo di 8po client/server: selezionando un link mentre si guarda un sito web,
il browser richiede le informazioni al computer server u8lizzando il protocollo HTTP.
!
Meccanismo client/server e hQp
Il meccanismo client/server è intui8vamente molto semplice da capire e prevede che un programma client
acceda alle risorse o ai servizi offer8 da un altro programma, de>o server. Questa interazione avviene ad
esempio ogni volta che usiamo un browser (client) per accedere a un sito web (ospitato da un server).
Anche se questo processo è nascosto all’utente, ogni volta che viene richiesta una pagina web (indicandone
l’indirizzo o selezionando un link) il browser compone una richiesta h>p e la invia al server. Il server
interpreta la richiesta e risponde con un messaggio HTTP di risposta. Una richiesta HTTP è cos8tuita da
un’intestazione (header) e un corpo (body). L’intestazione con8ene l’indirizzo della pagina richiesta, ovvero
le informazioni necessarie a individuare la pagina sulla rete e alcune informazioni aggiun8ve rela8ve al
richiedente. Il corpo con8ene eventuali parametri (ad esempio parametri di ricerca) associa8 alla richiesta.
Anche un messaggio HTTP di risposta con8ene un’intestazione e un corpo. L’intestazione con8ene
informazioni rela8ve al server che ha risposto e al 8po di risposta (ad es., richiesta andata a buon fine,
errore). Il corpo invece con8ene la pagina effe:vamente richiesta che il client (8picamente un browser)
interpreterà e mostrerà all’utente.
Perché tale meccanismo funzioni è necessario avere un indirizzo univoco per ogni pagina presente sul Web.
Nel WWW tale compito è affidato agli URI, iden8fica8vi univoci indipenden8 dal protocollo di rete ado>ato,
che consentono di ritrovare con precisione una specifica risorsa imponendo una sintassi chiara, semplice ed
efficace. Un esempio di URI è cos8tuito da qualsiasi indirizzo di un sito web, così come compare sulla barra
degli indirizzi del browser quando si accede a un sito.
!
I metodi uElizzaE da HTTP
Per effe>uare una richiesta, HTTP me>e a disposizione due principali metodi: GET e
POST. Il metodo GET è
usato per o>enere il contenuto della risorsa indicata come URI (come può essere il contenuto di una pagina
HTML). Il metodo POST è usato di norma per inviare informazioni al server (ad esempio i da8 di un form). In
questo caso l'URI indica che cosa si sta inviando e il body ne indica il contenuto.
Le pagine web e gli elemen8 grafici trasferi8 in questo modo sono invia8 so>o forma di pacche9,
contenen8 il messaggio HTTP di risposta. Per questa ragione solitamente le pagine web non sono scaricate
istantaneamente ma si adeguano all’ordine di arrivo dei pacche:.
HTTP differisce da altri protocolli come FTP, per il fa>o che le connessioni vengono generalmente chiuse una
volta che una par8colare richiesta (o una serie di richieste correlate) è stata soddisfa>a. Ciò significa che la
richiesta di una pagina è completamente indipendente dalle richieste successive, anche di pagine dello
stesso sito. Questo comportamento rende il protocollo HTTP ideale per il World Wide Web, in cui le pagine
molto spesso contengono dei collegamen8 (link) a pagine ospitate da altri server. Talvolta però pone
problemi agli sviluppatori di contenu8 web, perché ad ogni richiesta di un utente non si hanno più
informazioni rela8ve alla precedente richiesta (stato dell’utente). Supponiamo ad esempio che si richieda
una pagina inviando contestualmente le informazioni rela8ve alla propria iden8tà (ad es., login e password).
Se, una volta ricevuta la pagina richiesta, si effe>ua una successiva richiesta di un’altra pagina dello stesso
sito, le informazioni inviate in precedenza non sono pi