Sei sulla pagina 1di 28

Unità di apprendimento 1

Il livello Applicazione
Unità di apprendimento1
Lezione 2

Il Web e HTTP
In questa lezione impareremo:
 L’architettura del WEB
 Il protocollo HTTP
 Il formato di messaggio HTTP
Il World Wide Web
WWW (World Wide Web) significa “ragnatela intorno
al mondo” ed è un insieme di pagine multimediali,
documenti testuali, audio e video, collegati tra loro,
entro i quali ci si può spostare con diverse modalità.
In sostanza, è l’insieme delle pagine ipermediali di
Internet, cioè è un ipertesto multimediale distribuito.
Il successo del WEB
 Il successo del web è dovuto alla facilità di
recuperare le informazioni e renderle subito
fruibili all’utente attraverso semplici click su
dei link; il famoso ipertesto.
URI (Universal Resource
Identifier)

All’interno della rete Internet ciascuna risorsa è identificata
in modo univoco mediante un indirizzo URI (Universal
Resource Identifier).

L’URI non è altro che un indirizzo univoco di una
particolare risorsa nella rete, rappresenta la risorsa che si
vuole raggiungere.

Per capire il funzionamento del Web vediamo un piccolo
esempio che aiuta a comprendere cosa accade quando un
utente si vuole collegare a un certo indirizzo URI, in questo
caso al sito http://www.istruzione.it.

il browser recupera le informazioni secondo i meccanismi previsti per le
risorse identificate con lo schema URI-HTTP;

il server che contiene le pagine Web del sito www.istruzione.it risponde
alla richiesta inviando le informazioni che si vogliono ottenere;

il browser interpreta la risposta, identificando il tipo di documento che
viene trasmesso (content-type) e a sua volta invia altre richieste per
recuperare le informazioni collegate, quali per esempio le immagini
relative alle notizie dell’ultim’ora;

il browser mostra le informazioni ricevute, che includono a loro volta
collegamenti ipertestuali.
URL (Universal Resource
Locator)
Generalmente si sente parlare di URL (Uniform Resourse
Locator) e non di URI, ma la differenza tra i due riferimenti a
indirizzi Internet sta nel fatto che l’URL è un particolare tipo di
URI e un URI può identificare oggetti anche non correlati ai
protocolli Internet esistenti (si pensi per esempio al caso di
about:netscape).
Ogni documento Internet è individuato da un indirizzo URL che
lo identificano in modo univoco, che è formato da:
 protocollo per la connessione (HTTP per pagine web);
 nome simbolico (o indirizzo IP) del server;
 pathname del file sul server.
ES: http://www.google.com/index.html
Meccanismo di comunicazione
Il meccanismo che sta alla base della comunicazione attraverso
il protocollo HTTP è il seguente:

◗ si apre una connessione TCP tra client e server;


◗ il browser richiede una risorsa al server http (web server);
◗ il server risponde (se possibile, fornendo la risorsa richiesta);
◗ si chiude la connessione (da HTTP1.1 non si chiude
automaticamente ogni volta la sessione, ma rimane aperta per
dare maggiori possibilità di trasmissione dati).
Passi per la comunicazione
Vediamo adesso come si apre la connessione tra client e web
server in una tipica “conversazione” tramite protocollo http, per
esempio per la seguente richiesta:
http://alinet.miur.unibc.it/sistemi/itisVol2/RetiLaB/index.html

1 Il browser del client analizza l’URL e ne estrae il dominio;


2 il client HTTP inizia una connessione TCP verso il web server
alinet.miur.unibc.it sulla cui porta 80 il server HTTP è in ascolto;
3 il client HTTP invia una richiesta (GET) al server attraverso il
socket associata alla connessione TCP stabilita al punto 1; nella
richiesta specifica il file /sistemi/itisVol2/RetiLaB/index.html;
4 il server riceve la richiesta, incapsula l’oggetto specificato nella
risposta HTTP e invia il messaggio al client attraverso il socket;
Passi per la comunicazione (2)
5 il server HTTP invia quindi al TCP la richiesta di chiusura della
connessione, che avverrà solo dopo che il messaggio di risposta
è stato riscontrato dal client; 6 la connessione TCP si conclude;
il messaggio indica che l’oggetto è un file HTML; il client lo
estrae e trova i riferimenti agli oggetti referenziati (immagini, fogli
di stile, oggetti Javascript…); 7 i passi precedenti vengono
ripetuti per ciascuno degli oggetti referenziati (eventualmente
aprendo più connessioni in parallelo).
Passi per la comunicazione
La connessione creata da HTTP 1.0 è di tipo non permanente: si
limita alla trasmissione di una singola pagina HTML. La modalità
di default per HTTP 1.1 è invece di tipo permanente: il server
non chiede la chiusura della connessione TCP se non dopo che
è scaduto un time-out durante il quale la connessione non è
utilizzata.
Formato messaggi HTTP
Il formato dei messaggi HTTP è formato da una
1) start-line (riga di richiesta/risposta),
2) HEADER (intestazione HTTP)
3) BODY (corpo http, che può anche essere omesso). Vediamoli
più in dettaglio.
1)
La prima riga della richiesta contiene 3 elementi, un comando
chiamato metodo (GET e POST sono i più usati, poi ne vedremo
le differenze, ma esistono anche HEAD, PUT, DELETE,
TRACE, CONNECT, OPTIONS, per maggiori chiarimenti
guardare il sito www.rfc.net), il secondo è il percorso del server
della richiesta del client e poi la versione del protocollo http
usata (di solito 1.1).
Formato messaggi HTTP
Nella intestazione (HEADER) compaiono invece i dati che
riguardano il tipo di documento che il client riceve dal server, il
tipo di browser che ha richiesto la pagina, la data e alcune
informazioni generali sulla configurazione del sistema
richiedente.

Il corpo (BODY) del messaggio di richiesta da parte del client,


può essere omesso, verrà usato invece dal server per
rispondere con la pagina HTML vera e propria. Conterrà i dati di
un eventuale form inviato al server SOLO se è stato usato il
metodo POST. Nella riga risposta del server invece compaiono
solo 2 informazioni: il numero delle versioni dell’HTTP e un
codice di risposta tra i seguenti:
Codici di risposta
Intestazione risposta
Nell’intestazione della risposta compaiono 3 dati: il primo di tipo
generale (per esempio data e ora di risposta), il secondo è
l’entità (per esempio data e ora di ultima modifica dei dati
richiesti) e il terzo è la richiesta (informazioni sul server e su
come gestisce la risposta, se i dati sono text o html ecc.). Il
corpo della risposta contiene la pagina HTML vera e propria.
Vediamo lo schema logico di quanto appena detto:
Schema di interazione client
server nel protocollo HTTP
Esempio di richiesta
 Esempio di richiesta di un client
Esempio di risposta
 Esempio di risposta positiviva
Esempio di risposta
 Esempio di risposta negativa
Il Browser
Browser Significa letteralmente “sfogliatore” e
non è altro che un programma in grado di
“locare” una pagina in Internet e di interpretarne
attraverso un parser interno le righe di codice
sorgente scritte in HTML, fornendo all’utente
una linea di comando dove poter digitare gli
indirizzi IP.
Definizione dei metodi (1)
HTTP mette a disposizione del client un insieme
di metodi per inviare le richieste al server:
questi metodi sono a tutti gli effetti dei
comandi che il client invia al server. Vediamoli
in sintesi.
 OPTION Il metodo OPTION rappresenta una
richiesta di informazioni inerenti alle opzioni di
comunicazione disponibili sul canale definito
dalla Request-URI.
Definizione dei metodi (2)
 GET Il metodo GET richiede una risorsa
(informazioni, file, documenti, pagine HTML)
al server localizzato con una Request-URI.
 HEAD Il metodo HEAD è identico al GET
eccetto per il fatto che il server non deve
restituire il corpo del messaggio, ma
solamente l’header. Il metodo viene usato
spesso per testare la accessibilità e le recenti
modifiche di links ipertestuali.
Definizione dei metodi (2)
 POST Con il metodo POST il client può
spedire al server informazioni organizzate con
una serie di coppie nome=valore che
corrispondono all’input del programma
indicato nella request-URI.
 PUT Il metodo PUT serve per inviare file al
server (upload di file da parte del client): se il
file esiste in corrispondenza all’URI
specificato, questo verrà considerato come un
aggiornamento della versione preesistente.
Definizione dei metodi
 DELETE Il metodo DELETE richiede che il
server ricevente cancelli il file all’indirizzo
specificato dal Request-URI. Il client non ha
nessuna garanzia che l’operazione abbia
esito positivo in quanto è necessario che esso
possieda i diritti per eseguire questa
operazione.
Definizione dei metodi
 TRACE Il metodo TRACE richiama un
loopback remoto a livello dell’applicazione del
messaggio richiesto: si tratta di un “ping” che
verifica quali dati il server Web riceve dal
client.
 CONNECT Questo metodo viene usato per
instaurare una semplice connessione con un
proxy server.
Il protocollo HTTP

Il protocollo HTTP è definito da due standard


RFC 1946 (Versione 1.0)
RFC 2616 (Versione 1.1)
Comunicazione Client e Server
La comunicazione tra client e server avviene
secondo il protocollo TCP/IP usando gli indirizzi
IP dei computer che ospitano client e server.
I messaggi con il protocollo http possono essere
separati nelle due categorie request e
response, cioè richiesta e risposta, e sono un
insieme di righe di caratteri ASCII terminate da
CR+LF. I due messaggi hanno lo stesso
formato, secondo lo standard RFC822, e sono
entrambi definiti dal protocollo.