10110
Reti di Calcolatori
01100
01011
IL LIVELLO APPLICAZIONI
WEB e HTTP
10110
Applicazioni di Rete
01100
01011

World Wide Web

URL

Web Client

Web Server

HTTP

Futuro del Web
10110
World Wide Web (WWW)
01100
01011
 Il
World Wide Web è una architettura
software per l’accesso a documenti distribuiti
su
Internet
e
collegati
tra
loro.
 “Ragnatela”
mondiale
di
documenti
organizzati secondo un modello ipertestuale.
 Concetti



di base:
Internet,
ipertesti,
multimedialità.
10110
World Wide Web (WWW)
01100
01011
 Nato
nel 1989 al CERN di Ginevra come
mezzo per scambiare informazioni.
 Nel
1994 è stato fondato il W3C - Consorzio
World Wide Web (www.w3c.org).
 La
prima interfaccia grafica è stata Mosaic.
10110
Organizzazione di un testo
01100
lettura sequenziale
01011
pag
1
pag
6
pag
7
pag
4
pag
2
pag
3
pag
5
10110
Organizzazione di un ipertesto
01100
01011
nodo (pagina)
link
ancora
Terminologia per gli Ipertesti sul Web
10110
01100
01011

Browser: programma applicativo per navigare in
rete.

Page (pagina): singolo “foglio” di un ipertesto.

Home-page: “punto di ingresso” di un sito web.

Link, iperlink: porzione di una pagina che, se
selezionata, permette di raggiungere un altro
punto dell’ipertesto o una nuova risorsa.
10110
HTML
01100
01011



Gli ipertesti del Web sono scritti usando il
linguaggio HyperText Markup Language
(HTML).
HTML
non
è
programmazione!
un
linguaggio
di
HTML descrive la disposizione di tutti gli
elementi presenti all’interno di un documento
ipertestuale. Include documenti in altri
formati.
10110
HTML
01100
01011
Alcuni pattern (comandi) HTML
HTML
10110
01100
01011


Grazie al Web si possono condividere delle
informazioni ma anche eseguire applicazioni.
E’ possibile creare dei meccanismi di
comunicazione interattiva mediante l’uso del
linguaggio HTML opportunamente combinato
con altri linguaggi di programmazione:




Java,
PHP,
Javascript,
Perl.
Web: Modello Client-Server
10110
01100
01011



Il Web usa il modello client-server per lo
scambio delle informazioni.
Il client, è realizzato dal browser che “gira”
sull’elaboratore dell’utente.
Il server, è un programma applicativo che “gira”
sull’elaboratore del fornitore di informazioni
(provider).
10110
Web Client-Server
01100
01011
LAN 1
client
client
server
LAN 2
Ogni volta che si
usano indirizzi
simbolici c’è di
mezzo il DNS
server
client
server
client
client
Uniform Resource Locator
10110
01100
01011

Gli indirizzi per “trovare” i documenti nel Web
sono detti Uniform Resource Locator (URL)
e identificano in modo univoco i nodi (i
documenti).
protocollo://indirizzodelserver[:portaTCP]/pathname

http://www.deis.unical.it/index.html
è l’indirizzo della home-page del DEIS.
Browser Web Aperto ad altri Protocolli
10110
01100
01011

Molti browser web sono in grado di gestire
diversi protocolli definiti negli URL.

http
HTTP
http://www.deis.unical.it/index.html

ftp
FTP
ftp://ftp.lcs.mit.edu/pub/README

file
file locale
C:\doc\lezione-reti.ppt

news
gruppo news
news:comp.os.linux

news
articolo news
news:[email protected]

mailto
invio email
mailto:[email protected]

telnet
login remoto
telnet://si.deis.unical.it
10110
01100
01011
Web Servers
Web Servers e Download di Pagine Web
10110
01100
01011
Il browser controlla e determina l’URL, (es. www.w3c.org),

Il browser chiede al DNS l’indirizzo IP del sito richiesto,

Il DNS risponde 18.23.0.23,


Il browser crea una connessione TCP sulla porta 80 della
macchina 18.23.0.23,
Il browser invia il comando
GET /hypertext/WWW/TheProject.html HTTP/1.0

Il server invia il file TheProject.html,

Viene chiusa la connessione TCP,

Il browser visualizza il testo del file e quindi le immagini
contenute in esso.
Protocollo HTTP
10110
01100
01011

La comunicazione tra client e server Web
avviene seguendo il protocollo HTTP.



Hyper Text Transmission Protocol (HTTP) introdotto
per trasmettere documenti ipertestuali / ipermediali
sulla rete.
Il protocollo definisce l’interazione
risposte) tra client e server Web.
(richieste
e
Le richieste HTTP sono in formato ASCII e le risposte
in formato MIME.
Protocollo HTTP
10110
01100
01011




Ogni sito Web ha un processo server in ascolto su una
porta TCP.
La porta standard è la numero 80 ma può essere usata
una porta con numero diverso (es. 443 per la versione
“sicura” HTTPS).
Questo permette di avere più server Web su una stessa
macchina.
Il protocollo è senza stato (non c’è memoria delle
transazioni).
Richieste HTTP
10110
01100
01011

La linea iniziale di una richiesta è formata da 3 parti




Metodo
Percorso locale della risorsa richiesta
Versione di HTTP usata
Esempio di richiesta
GET /index.html HTTP/1.0
Header
Linea Iniziale
Host: haldo.deis.unical.it
User-Agent: Mozilla/4.0 (Windows; U; WinXP; en-US; m18)
Gecko/20010131 Netscape6/6.01
Accept: */*
Accept-Language: en
Accept-Encoding: gzip,deflate,compress,identity
Keep-Alive: 200
Connection: keep-alive
10110
Metodi HTTP
01100
01011

I metodi HTTP definiscono le operazioni possibili su una risorsa
GET
chiede la lettura di una risorsa Web. Se è seguita dall’intestazione IfModified-Since il server invia i dati solo se sono stati modificati dopo la
data specificata (gestione cache del browser).

HEAD
Richiede solo le intestazioni relative alla risorsa. Serve per verificare le
caratteristiche della risorsa senza trasferirla.

Occorre avere i permessi
POST
Utilizzato per inviare dati da elaborare al server. L’intestazione è seguita da
un corpo della richiesta che contiene i dati.


Altri metodi : PUT, DELETE, LINK e UNLINK.
Risposta HTTP
10110
01100
01011

La linea iniziale di una risposta contiene informazione di stato. Segue
l’header e la risorsa Web in formato HTML.
header
HTTP/1.1 200 OK
Date: Wed, 06 Nov 2002 18:45:22 GMT
Server: Apache/1.5.10 (Win32)
Last-Modified: Wed, 06 Nov 2002 18:40:50 GMT
ETag: "0-64-3b1eaf7a"
Accept-Ranges: bytes
Content-Length: 100
Connection: close
Content-Type: text/html
Linea vuota
risorsa
<HTML>
<HEAD>
<TITLE>Sito Web di Topolino</TITLE>
</HEAD>
<BODY>
<H1>Informazioni principali</H1>
……
</BODY>
Intestazioni
10110
01100
01011

Seguono il formato specificato in RFC 822 anche per le e-mail

HTTP 1.0 definisce 16 header (tutti opzionali)

HTTP 1.1 definisce 46 header (obbligatorio Host:)

Alcuni esempi :
User-Agent:
Identifica il programma client che effettua la
richiesta. Individua clients, spiders, ecc..
Server:
Identifica il server.
Last-Modified:
Indica la data di modifica della risorsa. E’ usata
per gestire le cache.
Content-Type:
Tipo MIME del corpo del messaggio.
Content-Length:
Lunghezza in byte del corpo del messaggio.
10110
Proxy HTTP
01100
01011


Un proxy HTTP agisce da intermediario fra il client e il
server
 Riceve le richieste dal client,
 Propaga la richiesta al server corretto,
 Gestisce protocolli diversi da HTTP.
Sono usati su LAN per caching o accesso ad Internet
tramite firewall per controllare gli accessi alla rete.
Richiesta HTTP
Risposta HTTP
Proxy
FTP
Richiesta FTP
Risposta FTP
Server FTP
10110
HTTP 1.1
01100
01011

Permette più transazioni
connessione persistente.


su
una
stessa
Le richieste sono inviate in pipelining e si ricevono le risposte
nello stesso ordine.
Risposta più veloce per pagine generate
dinamicamente utilizzando la codifica chunked.


Non si deve specificare la lunghezza del
nell’intestazione,
Il messaggio è scomposto in blocchi (chunks).
messaggio
10110
HTTP 1.1
01100
01011


Ha introdotto il supporto per le cache (IfModified-Since:)
Uso migliore degli indirizzi IP permettendo di
ospitare più siti virtuali su uno stesso server con
un solo IP

Uso dell’intestazione Host: -> specifica il nome del sito a cui è
indirizzata la richiesta.
Multi-Homed IP
10110
01100
01011


Un server allo stesso indirizzo IP può gestire più
domini.
Richiede l’utilizzo di alias nel DNS.
www.x1.org
DNS
www.x2.org
118.23.12.1
118.23.12.1
Server Web
unico
10110
Web Server Multi-thread
01100
01011

Un Web server efficiente può gestire le
chiamate tramite un insieme di thread che
gestiscono le diverse richieste dei client.
10110
Presente e Futuro del Web
01100
01011

Pagine Dinamiche (JSP,ASP,PHP);

Extended Markup Languge (XML);

Web Services.
10110
XML
01100
01011
Semplice esempio di documento XML
10110
Riferimenti
01100
01011
HTTP: http://www.w3.org/Protocols/
HTML: http://www.w3.org/MarkUp/
XML: http://www.w3.org/XML/
Web Services: http://www.w3.org/2002/ws/
Scarica

Web - ICAR-CNR