Architettura del World Wide Web
Facoltà di Ingegneria
Università di Roma “La Sapienza”
Gennaio 2001
Sintesi dei livelli di rete
• Livelli di trasporto ed inferiori (Livelli 1-4)
– Connessione fisica
– Trasmissione dei pacchetti (IP)
– Affidabilità della comunicazione e della
trasmissione dei messaggi (TCP)
• Livello applicativo (Livello 5)
2
Gennaio 2001
Principali applicazioni Internet
•
•
•
•
•
Domain Name System
Posta elettronica (SMTP)
Login remoto (Telnet)
Trasferimento file (FTP)
World Wide Web
Tutte usano il modello client/server
3
Gennaio 2001
Indice
• Standard del WWW
– Identificativo URL
– Linguaggio HTML
– Protocollo HTTP
• Client (browser)
• Server (server Web)
• Ottimizzazioni del WWW
4
Parte 1: Standard del WWW
Gennaio 2001
Ingredienti del WWW
• Meccanismi di comunicazione e naming di
Internet
– TCP/IP
– DNS
• Tre nuovi standard
– Sistema di indirizzamento delle risorse URL
– Linguaggio HTML
– Protocollo HTTP
• Sistema client-server
– Client (Browser)
– Server Web
6
Gennaio 2001
Risorse Web
• Documenti (detti anche pagine)
– testo
– immagini
– suoni
– video
• Risultati di esecuzioni
• Programmi eseguibili
7
Gennaio 2001
Uniform Resource Locator (1)
Il sistema di indirizzamento delle risorse è
basato su Uniform Resource Locator (URL),
un meccanismo standard per fare riferimento
a tutte le risorse presenti nel Web:
– pagine (testo, immagini, suoni, video, ...)
– risultati di esecuzioni
– programmi eseguibili
8
Gennaio 2001
Uniform Resource Locator (2)
schema :// host.domain / pathname
http :// www.dis.uniroma1.it / docenti/orari/esami.html
• schema: indica il modo con cui accedere alla risorsa, cioè quale
protocollo bisogna usare per interagire con il server che controlla la
risorsa. Il metodo di accesso più comune è HTTP (protocollo nativo
del WWW per il recupero di risorse Web)
• host.domain: è l’hostname del nodo nel quale risiede la risorsa Web.
• pathname: identifica la risorsa presso il server Web. In particolare, si
specifica il cammino all’interno dell’organizzazione del file system
dedicata alle risorse Web. Nel caso in cui il pathname non contenga
alcun nome di file, si suppone che la pagina selezionata sia
“index.html”.
9
Gennaio 2001
Naming di Internet e del Web
INTERNET
WORLD WIDE WEB
DNS
URL
Host
Risorsa Web
Hostname
Valore URL
Così come host è un termine più ampio di computer,
risorsa Web ha un significato più ampio di pagina HTML
10
Gennaio 2001
Ingredienti del WWW
• Meccanismi di comunicazione e naming di
Internet
– TCP/IP
– DNS
• Tre nuovi standard
– Sistema di indirizzamento delle risorse URL
– Linguaggio HTML
– Protocollo HTTP
• Sistema client-server
– Client (Browser)
– Server Web
11
Gennaio 2001
Concetto di Ipermedia
• I documenti Web tipicamente contengono
un insieme di
–
–
–
–
testo
immagini
puntatori selezionabili ad altre risorse
(audio)
– (video)
Ipermedia
• Uso mediante “point-and-click”
12
Gennaio 2001
Documento Web
• Una pagina è costituita da vari oggetti (testo,
immagini binarie, …), detti embedded objects
• Ad ogni oggetto corrisponde un file
• Caratteristiche del testo tipico:
– Rappresentazione in standard ASCII
– Si specifica sia il contenuto sia la rappresentazione
– Scritto nel linguaggio di markup HTML
13
Gennaio 2001
Linguaggio di markup
Per permettere la corretta visualizzazione
dell’informazione su qualsiasi piattaforma hardware
connessa in rete è stato necessario definire un
nuovo linguaggio di markup per la formattazione
delle pagine:
– Fornisce delle linee guida generali per la rappresentazione
del contenuto.
– Non specifica esattamente il formato e la posizione del
testo, lasciando ai browser la definizione dei dettagli.
Due browser potrebbero visualizzare lo
stesso documento in modo differente.
14
Gennaio 2001
Linguaggio HTML
• Sebbene siano stati proposti modifiche ed altri
standard*, a tutt’oggi HyperText Markup Language
(HTML) rimane il “linguaggio del Web”.
• La pagina HTML è un file di solo testo ASCII.
• Il testo è free-format.
• Contenuto del testo e specifiche di formato sono
inseriti nello stesso file.
* XML sembra essere il nuovo standard più promettente
15
Gennaio 2001
Istruzioni HTML
• La descrizione dei contenuti dell’ipertesto viene effettuata
inserendo all’interno del testo stesso alcune istruzioni dette
marcatori o markup o tag che producono le visualizzazioni
e le azioni specificate.
• Le istruzioni HTML sono racchiuse tra parentesi angolari,
nella forma <tag>, e vengono terminate da un tag di
chiusura nella forma </tag>. Es.
<CENTER> <B> <FONT="Arial">
<FONT COLOR="#336633"> <FONT SIZE=+1>
Informazioni generali
</FONT></FONT></FONT></B></CENTER>
16
Gennaio 2001
Schema di un documento HTML
<HTML>
<HEAD>
<TITLE>
Titolo del documento
</TITLE>
</HEAD>
<BODY>
Corpo del documento
</BODY>
</HTML>
17
Gennaio 2001
Tag àncora
• L’istruzione più innovativa dell’HTML è l’àncora delimitata dai
tag <A>…</A>, in quanto tale elemento permette di
trasformare un normale testo in ipertesto multimediale
• Un àncora può far riferimento ad una sezione della stessa
pagina oppure ad una qualsiasi risorsa (testuale,
multimediale, eseguibile) presente sul Web, denotata
mediante un URL che va inserito all’interno del tag àncora
<A
HREF="http://www.uniroma1.it/studenti/erasmus.html”>
Programma Erasmus </A>
• Il testo Programma Erasmus viene visualizzato in modo
differente e risulta un link simbolico selezionabile via mouse
18
Gennaio 2001
Ingredienti del WWW
• Meccanismi di comunicazione e naming di
Internet
– TCP/IP
– DNS
• Tre nuovi standard
– Sistema di indirizzamento delle risorse URL
– Linguaggio HTML
– Protocollo HTTP
• Sistema client-server
– Client (Browser)
– Server Web
19
Gennaio 2001
Protocollo HTTP
• HyperText Trasmission Protocol (HTTP) è il protocollo
che permette il reperimento delle risorse Web.
• E’ un protocollo applicativo (5° livello) di
richiesta/risposta basato tipicamente sulla suite di
protocolli TCP/IP.
• Tutti i client e server Web devono supportare il protocollo
HTTP per poter scambiare richieste e risposte.
Per questa ragione i client e i server Web sono
chiamati anche client HTTP e server HTTP.
20
Gennaio 2001
Richiesta HTTP
• Una richiesta HTTP comprende un metodo, un URL,
l’identificativo della versione del protocollo HTTP,
ed un insieme di extension header.
• Il metodo specifica il tipo di operazione che il client
richiede al server. Il metodo più comune è GET che
serve per acquisire pagine Web.
• Gli header contengono informazioni addizionali, quali
la data e l’ora della comunicazione, il tipo di software
utilizzato dal client, i tipi di dato che il browser è in
grado di visualizzare, per un totale di circa 50 tipi di
header differenti.
21
Gennaio 2001
Risposta HTTP
• Una risposta HTTP comprende, oltre al contenuto
della risorsa richiesta, un header contenente
l’identificativo della versione del protocollo HTTP, il
codice di stato, l’informazione di stato in forma
testuale, ed un insieme di possibili altre informazioni
di risposta.
• Se la pagina richiesta, oltre al testo HTML, contiene
altri oggetti, ciascuno di essi sarà identificato da un
URL differente, per cui è necessario che il browser
invii un esplicito messaggio di richiesta per
ognuno degli elementi collegati alla pagina.
22
Gennaio 2001
Alcuni codici di risposta
Esito
Codice numerico
(status code)
Specifica testuale
(reason phrase)
OK, la risorsa è stata
trovata e viene inviata
200
OK
Risorsa spostata
301
Moved permanently
Risorsa non modificata
304
Not Modified
Richiesta non valida
400
Bad request
Richiesta di autenticazione
401
Unauthorized
Richiesta di pagamento
402
Payment required
Accesso vietato
403
Forbidden
Risorsa non esistente
404
Not found
Errore nel server
500
Server error
Non implementato
501
Not Implemented
Gateway difettoso
502
Bad Gateway
Servizio non disponibile
503
Service Unavailable
23
Parte 2: Client WWW
Gennaio 2001
Client Web (Browser)
• Il client Web è un’applicazione software che svolge
il ruolo di interfaccia fra l’utente ed il WWW,
mascherando la complessità di Internet.
• Funzioni principali
– inviare opportuni messaggi al server Web per ottenere le risorse
richieste
– interpretare il codice ipertestuale HTML
– elaborare il codice allo scopo di visualizzare in modo
appropriato il contenuto delle pagine sullo schermo.
25
Gennaio 2001
Browser più diffusi
• Netscape Navigator
• Internet Explorer (Microsoft)
26
Gennaio 2001
Collegamento del client a Internet
Il browser per poter funzionare deve essere
mandato in esecuzione:
– o su di una macchina connessa fisicamente ad
Internet e quindi con un indirizzo IP fissato,
– oppure su di una macchina che può connettersi in
modo remoto, per esempio tramite modem e
Internet Service Provider (ISP), e a cui viene
assegnato un indirizzo IP, possibilmente diverso, al
momento di ciascuna connessione.
27
Gennaio 2001
Componenti di un browser
Interprete HTML
Input da mouse
e tastiera
Controller
Driver
Altro interprete
(plug-in)
Client Http
Output verso
lo schermo
Client Http
Interfaccia di rete
Comunicazioni
con il server Web
28
Gennaio 2001
Fasi di una richiesta HTTP
oggetto Web
Client
browser
(5)
richiesta HTTP
(4)
INTERNET
(1)
server Web
144.55.62.18
(3)
144.55.62.18
(2)
www.uniroma.it?
name server locale
name server autoritativo
per www.uniroma1.it
Fase di lookup: (1) - (2) - (3)
Fase di richiesta: (4) - (5)
29
Gennaio 2001
Azioni di un browser (1)
Fase di lookup
• Il browser acquisisce dall’utente l’URL da richiedere.
• Il browser invoca il name server per conoscere, tramite il
sistema DNS, l’indirizzo IP dell’URL cercato.
 Se esistente, il DNS restituisce l’indirizzo IP.
Fase di richiesta
 Il browser attiva una connessione TCP con l’host che ha
l’indirizzo IP individuato.
 Sfruttando questa connessione, il browser richiede mediante il
protocollo HTTP la risorsa specificata nell’URL.
 Il server Web invia la pagina richiesta.
• Se vi sono oggetti allegati alla pagina, il browser effettua
30
una richiesta per ciascuno di essi.
Gennaio 2001
Azioni di un browser (2)
Fase di visualizzazione
 Una volta inviati tutti gli oggetti (nel caso di protocollo HTTP/1.1)
o dopo aver inviato ciascun oggetto (protocollo HTTP/1.0), il
server chiude la connessione TCP.
 Non appena riceve il primo file, il browser analizza come
visualizzare sul monitor il testo contenuto nella pagina.
 Il browser carica e mostra gli eventuali oggetti allegati alla pagina.
 Nel caso in cui l’oggetto ricevuto è in qualche formato non
direttamente interpretabile dal browser, questi può attivare un
apposito programma plug-in che ne consente la visualizzazione.
31
Gennaio 2001
Azioni client-server Web
Analisi Fase di
URL lookup
Invio
richiesta
Arrivo Arrivo
Analisi
Elaborazione Invio
Arrivo
richiesta richiesta al
richiesta richiesta
risposta
risposta Analisi Visualizz.
al server processo server completata completata completata al client risposta risposta
Latenza di rete
client-server
Client
(browser)
Tempo di
Tempo di
attesa in coda parsing
Tempo di
elaborazione:
CPU+Disk
Tempo di trasm. Latenza di rete
risposta server server-client
Server
Web
32
Parte 3: Server WWW
Gennaio 2001
Componenti di un sito Web
• Piattaforma hardware
• Software di base
• Parte informativa del sito Web
– Il sito deve mettere a disposizione un insieme di
risorse Web che possono essere richieste dai client
con cui vengono instaurate delle connessioni HTTP.
• Server Web
– Il processo server ed il relativo software che viene
eseguito sulla piattaforma stabilisce il collegamento tra
la piattaforma (hardware - software di base) e la parte
informativa del sito Web.
34
Gennaio 2001
Compiti del server Web
Il compito del server che fornisce pagine Web
statiche è molto semplice:
– attendere da parte dei browser richieste di connessione
TCP attraverso cui ricevere una richiesta HTTP
– decifrare l’URL della richiesta per determinare il file
cercato
– controllare se il file è disponibile
– in caso affermativo, spedire il file al browser attraverso
la connessione TCP aperta
– infine, chiudere la connessione subito dopo aver inviato
l’ultimo pacchetto concernente il file
35
Gennaio 2001
Richiesta di un oggetto statico
Client (browser)
DNS
server Web
DNS lookup
CPU
memoria
disco
rete
36
Gennaio 2001
Richiesta di un oggetto dinamico
Client (browser)
DNS
server
applicativo
server Web
DNS lookup
CPU
disco
rete
37
Parte 4: Ottimizzazioni del WWW
Gennaio 2001
Il “lato oscuro” del Web
Netscape error: web server
www.dsi.unimo.it
... not responding. Server
may have crashed or is
overloaded.
OK
39
Gennaio 2001
Possibili ottimizzazioni
• Mirroring
• Proxy caching e CDN
• Sistemi Web paralleli (distribuiti localmente)
• Sistemi Web distribuiti (geograficamente)
40
Gennaio 2001
Server Proxy
Nel caso più semplice la comunicazione tra
client e server Web avviene direttamente.
Più in generale, ove non sia possibile o non
conveniente che il client contatti direttamente il
server, vengono utilizzati degli intermediari che
possono essere di vari tipi, ma tra cui il più
diffuso è il server proxy.
41
Gennaio 2001
Richieste tramite server proxy
Client 1
(1)
(2)
(3)
(4)
Server proxy
Server Web
Client k
FIREWALL
Il server proxy agisce sia da server nei confronti del
client Web sia da client nei confronti del server Web.
42
Gennaio 2001
Caching dell’informazione
• I server proxy, nati come intermediari per consentire la
comunicazione tra client all’interno di Intranet con server
Web esterni, sono anche utilizzati come strumenti di
caching (memorizzazione temporanea) dell’informazione.
• MOTIVO: è elevata la probabilità che i client della stessa
organizzazione possono essere interessati alle medesime
informazioni Web.
• Nel momento in cui tale informazione viene reperita per la
prima volta da un server Web, può essere conveniente
memorizzarla nel server proxy, in modo che successive
richieste per la stessa pagina provenienti dalla stessa rete
possono essere soddisfatte localmente.
43
Gennaio 2001
Proxy caching
Client 1
Server proxy (cache)
Cache Miss
Server Web
Cache Hit
Client k
Server proxy (cache)
FIREWALL
44
Gennaio 2001
Content Delivery Network
45
Gennaio 2001
Ottimizzazioni dal lato server Web
Sistemi con
più memoria
e con CPU
più potenti
LAN
WAN
Sistemi con più server
46
Gennaio 2001
Sistemi Web paralleli
server Web 2
server Web 1
server Web 3
Client
browser
richiesta/risposta
HTTP
LAN
INTERNET
Switch
144.55.62.18
144.55.62.18
www.uniroma1.it?
name server
locale
server Web 4
name server autoritativo
per www.uniroma1.it
server Web 5
47
Gennaio 2001
Sito Web distribuito geograficamente
Server
Web
48
Parte 5: Conclusioni
Gennaio 2001
Sintesi (parole chiave del WWW)
• risorse Web
• browser
• URL
• fase di lookup
• ipertesto - ipermedia
• server Web
• linguaggio di markup
• server proxy
• HTML
• proxy caching
• tag - tag àncora
• sistemi Web paralleli
• client/server
• sistemi Web distribuiti
geograficamente
• protocollo HTTP
50
Scarica

Internet e Web