Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
WEB E HTTP
Client
Server web
Pagine del sito
Richiesta URL
Browser web
Risposta (contenuto) V.
IPERTESTO
Un i p e r t e s t o un t e s t o la cui struttura reticolare, invece che s e m p l i c e m e n t e lineare o
gerarchica: si c o m p o n e d i n o d i ( " p a g i n e " o p a g e ) e c o l l e g a m e n t i (link).
I link s o n o collegati a particolari p a r o l e , h o t s p o t o h o t w o r c , che, se selezionate, indirizzan o verso un'altra p a g i n a in m o d o da p e r m e t t e r e di r a g g i u n g e r e un altro p u n t o dell'ipert e s t o o una nuova risorsa.
UdA 4
Lo strato di applicazione
Browser
Significa
letteralmente "sfogliatore" e non altro che un
programma in grado di "locare" una
pagina in Internet e di interpretarne
attraverso un parser intemo le righe di
codice sorgente scritte in HTML, fornendo all'utente una linea di comando
dove poter digitare gli indirizzi IP.
Il codice sorgente delle pagine Web che viene i n terpretato scritto i n un linguaggio di "contrassegno" quale HTML, che nelle ultime versioni
anche i n grado di mandare i n esecuzione pseudoeseguibili scritti i n Java (Applet) o d i interpretare
p r o g r a m m i incapsulati internamente - detti script - , quali per esempio VBscript, Jscript o i l pi con o s c i u t o JavaScript. I browser pi diffusi sono certamente Internet Explorer (a volte denominato IE
per brevit) d i Microsoft e FireFox oltre ad altri meno noti (Opera, Ghrome e Safari).
I II client f o r n i s c e a un server le richieste p e r un d e t e r m i n a t o o g g e t t o . Il server r i s p o n d e c o n i
d a t i richiesti inviandoli in f o r m a t i s t a n d a r d i n t e g r a n d o l i col c o d i c e H T M L . Q u e s t o un m o d e l lo di carattere g e n e r a l e , t u t t a v i a sar i m p o r t a n t e ricordare q u e s t o s c h e m a d i c o m u n i c a z i o n e
q u a n d o v e r r a n n o discussi i l i n g u a g g i d i s c r i p t i n g lato server (
e >SP).
f *
Modifica
Visualizza
Preferiti
Strumenti
248
! X
%1 '
Web e HTTP
Lezione 3
comprende tutto quanto necessario per l'indirizzamento e la localizzazione dei file. Esso infatti include la localizzazione del protocollo, l'indirizzo Internet e i l nome del file, ed eventualmente la
localizzazione interna a quel particolare documento. Questo argomento verr approfondito pi avanti.
-~:://www.lorusso.it/Sistemi/Volume2/index.html
E anche possibile inoltre indicare la porta a cui connettersi e passare dei parametri alla risorsa
chiesta:
--;://www.lorusso.it:8083/Sistemi/Volume2/page.php?param=value
Vedremo che l'associazione tra i l nome dell'host e i l suo indirizzo IP viene effettuata da una apposita
applicazione, DNS (Domain Name System).
L architettura di funzionamento del Web pu essere espressa mediante tre termini assai importanti
ehc ne descrivono le caratteristiche: identificazione, interazione e f o r m a t o .
L'identificazione
Mediante u n indirizzo (URI o URL) le risorse presenti nella rete possono essere univocamente idenfcate.
L'interazione
l browser comunicano mediante protocolli standard che p e r m e t t o n o l'interazione tramite l'interjbtambio di informazioni strutturate secondo una sintassi e una semantica precise. Infatti quando
. jca su u n link o ci si collega a u n indirizzo Web, si dice al browser di ricercare una risorsa
identificata da quell'indirizzo.
tonnato
Sci protocollo d i comunicazione sono previste informazioni aggiuntive, chiamate meta-informazione permettono di identificare i l tipo d i documento da trasferire o da interpretare.
Nel caso d i p a g i n e H T M L il f o r m a t o p r e v i s t o d i t i p o C o n t e n t - t y p e : t x t / h t m l : q u e s t o il form a t o s t a n d a r d d e i d o c u m e n t i scritti in l i n g u a g g i o di c o n t r a s s e g n o e t u t t i i b r o w s e r s o n o in
grado di interpretare pagine secondo questo f o r m a t o .
M a g g i o r i e interessanti i n f o r m a z i o n i sul f u n z i o n a m e n t o d e g l i
e d e l l e a r c h i t e t t u r e W e b si
c o s s o n o t r o v a r e all'indirizzo I n t e r n e t della societ W 3 C ( a b b r e v i a z i o n e d i w w w C o n s o r t i u m
http://www.w3.org/TR/Web arch/.
249
Lo strato di applicazione
Zoom su.
LA SINTASSI URL
La sintassi p r e v e d e che v e n g a i n d i c a t o il p r o t o c o l l o p e r p r i m o , q u i n d i le i n f o r m a z i o n i d e l d o m i n i o , p o i l'eventuale c o u n t r y - c o d e , q u i n d i le e v e n t u a l i d i r e c t o r y e infine il file c h e c o n t i e n e i d a t i .
provincia
mi
co
250
.com
.edu
.net
: -'t
.de
.mn
.hk
.cu
.cg
.biz
.gov
.uni
.org
.fr
,uk
.my
.tr
.ir
.eh
tv
mailto:username@dominio
Per e s e m p i o nell'uri " m a i l t o : z i o . p i n o @ c o . p r o v i n c i a . i t " il d o m i n i o c o m p o s t o da un host p r i n c i pale (provincia.it) e da un s o t t o h o s t d e n o m i n a t o c o .
1
I i
.Veb Client:
Browser generico
%
.
Web Server:
US (Win NT, Seven, XP)
Personal Web Server
(Windows98 e 95)
Apache (Linux, e tutti)
Request http://website
251
UdA4
Lo strato di applicazione
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 i l protocollo http possono essere separati nelle due categorie request e response, cio
richiesta e risposta, e sono u n insieme d i 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.
II
I
>
meccanismo che sta alla base della comunicazione attraverso i l protocollo HTTP i l seguente:
si apre una connessione TCP tra client e server;
i l browser richiede una risorsa al server http (web server);
i l server risponde (se possibile, fornendo la risorsa richiesta);
si chiude la connessione (da I I T T P 1 . 1 non si chiude automaticamente ogni volta la sessione, ma
rimane aperta per dare maggiori possibilit di trasmissione dati).
Vediamo adesso come si apre la connessione tra client e web server i n una tipica "conversazione"
tramite protocollo http, per esempio per la seguente richiesta:
http://alinet.miur.unibc.it/sistemi/itisVol2/RetiLaB/index.html
Per messaggi lunghi abbiamo due possibili situazioni come quelle riportate nella figura seguente:
Per ricevere u n oggetto (tranne i l primo) nel caso d i connessione permanente occorre:
1 RTT;
0 tempo di trasmissione del file HTML.
253
Lo strato di applicazione
HTML vera e propria. Conterr i dati di u n eventuale forni inviato al server SOLO se stato usato i l
metodo POST. Nella riga risposta del server invece compaiono solo 2 informazioni: i l numero delle
versioni dell'HTTP e un codice di risposta tra i seguenti:
Classe
Descrizione
100-199
200-299
Successo
300-399
La richiesta non stata evasa in quanto le informazioni richieste sono state spostate
400-499
La richiesta incompleta, errata o impossibile ( tipico l'errore 404: server non trovato)
500-599
Nell'intestazione della r i s p o s t a c o m p a i o n o 3 dati: i l primo d i tipo generale (per esempio data e ora
di risposta), i l secondo l'entit (per esempio data e ora d i ultima modifica dei dati richiesti) e i l
terzo la richiesta (informazioni sul server e su come gestisce la risposta, se i dati sono text o h t m l
ecc.). I l corpo della risposta contiene la pagina HTML vera e propria.
Browser
HTTP request
Invia documento
HTTP://www.istruzione.it
Server HTTP
Reperimento file
sul file system
Server HTTP
Interpretazione file
e visualizzazione
Server HTTP
Browser
Utente
ESEMPIO
INDEX.HTM
FIG.GIF
STYLE.CS5
254
* 1* preferenza
linguistica
* I* ultima versione nella
cache
*/* tipo di browser
*/* host
*/* connessione
permanente
HTML della
pagina
GMT
richiesta
(12692
byte)
</html>
Con i l metodo POST i l client pu spedire al server informazioni organizzate con una serie di coppie
nome=valore che corrispondono all'input del programma indicato nella request-URI.
PIJT
Il metodo PUT serve per inviare file al server (upload d i file da parte del client): se i l file esiste i n
corrispondenza all'i RI specificato, questo verr considerato come u n aggiornamento della versione
preesistente.
DELETE
Il metodo DELETE richiede che i l server ricevente cancelli i l file all'indirizzo specificato dal Request-URI. I l client non ha nessuna garanzia che l'operazione abbia esito positivo i n quanto necessario che esso possieda i d i r i t t i per eseguire questa operazione.
TRACE
Il m e t o d o TRACE richiama u n loopback remoto a livello dell'applicazione del messaggio richiesto: si
t r a t t a di u n "ping" che verifica quali dati i l server Web riceve dal client.
CONNECT
Questo metodo viene usato per instaurare una semplice connessione con u n proxy server.
Proxy server
I < proxy server sono dei software che i n un'architettura client-server si frappongono tra i l server e i l client con funzione d i ponti nella rete: al proxy viene delegato i l compito d i scaricare le
informazioni e d i memorizzarle su una memoria d i massa i n modo da poter essere restituite i l pi
rapidamente possibile durante successive richieste identiche.
4 Proxy server Da W i k i p e d i a : "In c o m p u t e r networks, a proxy server is a server (a c o m p u t e r
system or an application) that acts as an intermediary for requests from clients seeking resources from other servers. A client connects t o the proxy server, requesting some service, such as a file,
connection, w e b page, or other resource available from a different server. The proxy server evaluates
the request as a way t o simplify and control their complexity."
I l proxy ha i n genere una connessione i n banda larga con la rete, quindi molto pi veloce dei singoli
host, e svolge la funzione d i cache (Web Gaching), cio memorizza le pagine usate pi recentemente
e frequentemente dagli utenti e quando l'utente le richiede, vengono inviate dal proxy e non dal sito
da cui provengono: quindi l'obiettivo dell'utilizzo dei proxy server quello di migliorare la velocit di
risposta della rete cercando di soddisfare le richieste del client senza coinvolgere i l server originale.
I l client m a n d a tutti gli HTTP request al web cache:
I se l'oggetto richiesto nel web cache, i l web cache spedisce l'oggetto;
altrimenti il web cache richiede l'oggetto dal server d'origine e successivamente lo spedisce al client.
^ $
eja
Client
256
Server d'origine
Proxy server
Server d'origine
Web e HTTP
:amo una sequenza completa d i funzionamento d i un proxy come descritto nell'RFG 2616:
B i l client (browser) richiede una risorsa (URL);
B il proxy intercetta la richiesta;
B i l proxy controlla la propria memoria cache per vedere se pu rispondere al client direttamente
oppure se deve richiedere la risorsa (URL) al server finale;
B i l server finale risponde al proxy;
il proxy aggiorna la propria memoria cache con la risposta del server;
il proxy crea u n nuovo pacchetto e invia la risposta al client.
a figura seguente mostrata la logica del funzionamento d i u n proxy HTTP.
Cache Storage
risposta
toltre i proxy permettono l'accesso a una rete a pi macchine e garantiscono l'anonimato nella
ivigazione sul web i n quanto nascondono l'indirizzo IP del client che ha richiesto una pagina,
uando u n host si collega a Internet, i l provider gli assegna u n indirizzo IP (es. 82.210.62.18) al
lale vengono associate le generalit del client che naviga con una sorta d i "targa" grazie alla quale
rintracciabile per ogni evenienza e a ogni visita d i u n sito Web: i l server che lo ospita legger l'inrizzo IP del computer e lo registrer nel suo database.
ndo tramite u n proxy possibile navigare anonimamente celando l'indirizzo IP: i siti che
rngono visitati continueranno a ricevere informazioni sull'indirizzo, ma non quelle del client bens
ielle del server proxy (anche i cookies finiranno sul proxy e non sul computer).
Zoom su...
I NAVIGAZIONE
NA
Chi vuole
Ichi
ANONIMA
n a v i g a r e sul w e b s e r v e n d o s i d i un p r o x y p e r r i m a n e r e a n o n i m o e n o n p o s s i e d e un
257
server proxy possono anche essere classificati secondo i l livello d i anonimato che garantiscono:
Trasparent Proxy Server: proxy trasparenti, anonimato minimo;
Anonymous Proxy Server: proxy meno veloci, ma con migliore livello d i anonimato;
Elite Proxy Server: proxy con u n elevato livello d i anonimato.
I cookies
Il protocollo HTTP non permette che i l server contattato "riconosca" u n utente che si gi collegato, dato che ogni pagina inviata richiede una connessione TCP indipendente; inoltre dato che i l
p r o t o c o l l o H T T P state-less e quindi le richieste dei client non lasciano alcuno stato nel server,
necessario memorizzare le informazioni della sessione sull'applicazione Web direttamente nel Web
Browser del visitatore.
I < cookies sono una parte fondamentale del protocollo HTTP che permettono d i riconoscere u n utente.
Un cookie u n file che viene memorizzato nel computer del client dal sito web che viene visitato, contenente informazioni sulle pagine visitate dall'utente: quando
l'utente si ricollega, i l contenuto d i tale file viene mandato al server, che lo analizza e ne estrae informazion i che ha precedentemente memorizzato i n modo da
presentare le informazioni personalizzate i n base alle
esigenze del visitatore (per esempio la lingua preferita,
i dati d i login per non richiedere ripetutamente le credenziali d i accesso ad aree riservate, la personalizzazione della visita con la visualizzazione delle preferenze gi
definite dall'utente i n accessi precedenti ecc.).
In alcuni browser ogni cookie corrisponde a un piccolo
file mentre per esempio i n Firefox t u t t i i cookie sono
memorizzati i n u n singolo file.
|
j
|
/
Per p o t e r scrivere i cookies sul c o m p u t e r d e l l ' u t e n t e il server ha necessariamente b i s o g n o della autorizzazione d e l c l i e n t che d e v e abilitare tra le o p z i o n i d i c o n f i g u r a z i o n e
d e l suo b r o w s e r e di p r o t e z i o n e
d e l suo c o m p u t e r la possibilit d i
memorizzare i cookies d a p a r t e d i
altri host.
La soluzione d i questo problema stata realizzata con la definizione del protocollo HTTPS descritto
nella RFC 2965, che incapsula HTTP i n una connessione cifrata con i l Web Server d i destinazione
in modo da rendere pi complesso, o per lo meno pi macchinoso, u n attacco da parte d i malintenzionati.
258
Web e HTTP
Sintatticamente i l protocollo IITTPS identico al protocollo impiegato per la normale navigazione i n rete e i m piega oltre a i protocolli TCP e HTTP, u n ulteriore livello
chiamato SSL (Secure Sockets Layer) che prende i dati
in entrata e l i cripta attraverso u n algoritmo matematico che l i rende praticamente indecifrabili.
I dati transitano sulla porta 443 anzich 80.
Zoom su...
W E B 2.0
Il t e r m i n e W e b 2.0 n o n si riferisce alla n u o v a v e r s i o n e d i un s o f t w a r e bens a l l ' e v o l u z i o n e sociale
che ha visto p r o t a g o n i s t a il m o n d o d i I n t e r n e t n e g l i u l t i m i a n n i : t r a m i t e il W e b 2.0 I n t e r n e t si
c o n f i g u r a s e m p r e p i c o m e "Social N e t w o r k " d o v e la c o l l a b o r a z i o n e assume il r u o l o di f a t t o re chiave p e r l'innovazione e lo s v i l u p p o . L'uso d e l l i n g u a g g i o X M L in sostituzione d e l l ' H T M L
r e n d e f a c i l m e n t e fruibili e r e i n t e r p r e t a b i l i le i n f o r m a z i o n i p r o v e n i e n t i da a p p l i c a z i o n i d i f f e r e n t i .
L'idea p r i n c i p a l e su cui si basa la nuova filosofia la possibilit d i trasferire qualsiasi a p p l i c a z i o ne c o m u n e m e n t e utilizzata dal PC al W e b . D i e t r o q u e s t e e v o l u z i o n i t r o v i a m o t e c n o l o g i e q u a l i :
W e b Service
XML
I Ajax (Asynchronous JavaScript and XML)
I API
I RSS
Le a p p l i c a z i o n i pi diffuse d e l W e b 2.0 s o n o :
I Blog
I Wiki
I Social n e t w o r k
Podcasting
Flickr, del.icio.us:
tagging,
non tassonomia
BitTorrent:
decentralizzazione
radicale
centrali:
Emergente:
il comportamento
dell'utente non
predeterminato
Google AdSense:
customer self-service
che rende possibile
"the long tail"
^Hackability
Piccoli pezzi uniti non
rigidamente
(il Web come insieme
di componenti)
Blogs:
partecipazione,
non pubblicazione
Wikipedia:
fiducia radicale
Posizionamento strategico:
Posizionamento dell'utente
Competenze
"Un'altitudine,
non una tecnologia"
I Vodcast
Il beta perpetuo
Gioco
Arricchimento
dell'esperienza
dell'utente
II software
che migliora
con l'aumentare
degli utenti
Il diritto a remixare
"Some rights
leserved"
iducia nei vostri utenti
Possibilit
di abbinare
un indirizzo a porzioni
del contenuto
259