Cos’è Internet: le reti di calcolatori - I
• Rete di calcolatori: insieme di calcolatori, altri dispositivi di
calcolo (telefoni cellulari, smartphone, telefoni VoIP, tablet,
televisori e altri elettrodomestici, ecc...) e dispositivi di rete,
connessii fra
f loro
l
per mezzo di collegamenti
ll
ti
• I collegamenti possono essere realizzati da diversi dispositivi
fisici: linee telefoniche, fibre ottiche, collegamenti satellitari,
ecc.
• I collegamenti consentono ai calcolatori, agli altri dispositivi
di calcolo e a quelli di rete di comunicare fra loro
• Per comunicare, calcolatori, altri dispositivi di calcolo e di
rete utilizzano specifici protocolli di comunicazione
• Protocollo di comunicazione: insieme di regole per la
trasmissione di informazioni
a.a. 2015/16
Tecnologie Web
1
Cos’è Internet: le reti di calcolatori - II
• Rete di reti: connette tra loro più reti di calcolatori, spesso
con caratteristiche diverse
• Internet è una rete di reti
• Le singole reti hanno caratteristiche disomogenee:
– diversi protocolli di comunicazione (interni alle singole
reti)
– diversi tipi di calcolatori, dispositivi di calcolo e di rete
– talvolta anche diverse convenzioni nella codifica delle
informazioni
• Tecnicamente, "internet" è l'insieme dei protocolli di internetworking, cioè dei protocolli di comunicazione tra le sottoreti; i protocolli di inter-networking NON si occupano delle
singole reti, ma esclusivamente della comunicazioni tra le reti
a.a. 2015/16
Tecnologie Web
2
1
Cos’è Internet: le reti di calcolatori - III
Ogni rete è dotata di un dispositivo detto router che la
connette con l'esterno
internet
A
router 4
router 5
router 2
router 1
Rete 1
B
router 3
Rete 2
Rete 3
a.a. 2015/16
Tecnologie Web
3
Cos’è Internet: le reti di calcolatori - IV
La comunicazione tra due calcolatori A e B avviene in 3
passi:
1. Comunicazione tra A e il router 1
2 Comunicazione tra router 1 e router 2
2.
(eventualmente mediata da altri router)
3. Comunicazione tra il router 2 e B
I protocolli di inter-networking, ed in particolare
TCP/IP, si occupano principalmente del passo 2
(comunicazione tra i router)
Le caratteristiche di TCP/IP fanno sì che la rete basata su
questi protocolli sia una rete molto robusta, in grado cioè
di funzionare in modo efficiente e affidabile anche se una
parte di essa dovesse essere danneggiata
a.a. 2015/16
Tecnologie Web
4
2
Cos’è Internet: le reti di calcolatori - V
Visione "logica" di Internet: l'utente finale non è esposto
alla complessità di Internet: egli ne ha una visione logica
astratta, costituita da "nodi" che comunicano fra loro (in
qualche modo)
a.a. 2015/16
Tecnologie Web
5
Cos’è Internet: le reti di calcolatori - VI
Come'è fatta Internet?
E' sostanzialmente costituita da un insieme di host che ospitano
applicazioni varie (es. browser, Web server, client di posta,
server di posta, ecc.)
Host: possono essere
Workstation, PC, computer
portatili, tablet, smartphone,
telefoni VoIP, televisori o
altri elettrodomestici, ecc..
a.a. 2015/16
Tecnologie Web
6
3
Cos’è Internet: i protocolli - I
• La comunicazione (tra host) è regolata da specifici
protocolli di comunicazione
• I protocolli di comunicazione sono organizzati in una
gerarchia: i protocolli più in alto nella gerarchia sono
definiti in base ai protocolli che stanno più in basso
Quali vantaggi ha un'organizzazione gerarchica?
• Astrazione: nella realizzazione di un servizio ad un dato livello, ci
si può concentrare sulle problematiche di quel servizio e assumere
come disponibili tutti i necessari servizi "sottostanti"
• Scomposizione: l'organizzazione in livelli permette di affrontare un
problema complesso suddividendolo in sottoproblemi più semplici
• Modularità: il sistema ha un'architettura modulare e questo ne
facilita la manutenzione, la modifica, il riuso delle componenti
(moduli)
a.a. 2015/16
Tecnologie Web
7
Cos’è Internet: i protocolli - II
I protocolli Internet sono organizzati in una gerarchia
composta da cinque livelli:
Applicativo
DNS
HTTP
POP
SMTP
IMAP
FTP
Telnet
Trasporto
NB: ad ogni livello
possono essere
presenti più protocolli:
in figura ne abbiamo
riportati solo alcuni
TCP
UDP
Rete
IP
Collegamento
PPP
CSMA/CD
WiFi
Fisico
Protocolli per
doppino
a.a. 2015/16
Protocolli per
cavo coassiale
Protocolli per
fibra ottica
Tecnologie Web
Protocolli per
conness. wireless
8
4
Cos’è Internet: i protocolli - III
1. Livello applicativo: contiene i protocolli che regolano lo
scambio di messaggi ("contenuti") tra processi applicativi
(es: il browser comunica con il Web server, il client di
posta con il server di posta, ecc.) – come vedremo...
2. Livello di trasporto: contiene i protocolli che regolano il
trasporto dell'informazione da un processo applicativo ad
un altro processo applicativo (in particolare,
l'identificazione dei processi applicativi)
3. Livello di rete: contiene i protocolli che regolano il
trasporto dell'informazione da un host all'altro
4 Livello di collegamento: contiene i protocolli che
4.
regolano l'attraversamento del singolo collegamento
5. Livello fisico: contiene i protocolli che regolano la
comunicazione sui diversi dispositivi fisici (linee
telefoniche, fibre ottiche, collegamenti satellitari, ecc.)
a.a. 2015/16
Tecnologie Web
9
Cos’è Internet: i protocolli - IV
Es.: comunicazione tra A e B
comunicaz.
diretta:
l'entità ad un
dato livello
chiede
direttamente
i servizi ad
un'entità al
livello
sottostante
Nodo A
Nodo B
Entità 
l. applicativo
Entità 
l. applicativo
Entità 
l. trasporto
Entità 
l. rete
Entità 
l. collegamento
Entità 
l. fisico
a.a. 2015/16
Entità 
l. trasporto
comunicazione
virtuale fra
entità a livelli
corrispondenti
Entità 
l. rete
Entità 
l. collegamento
comunicaz.
diretta:
l'entità ad un
dato livello
inoltra
l’informaz.
ad un'entità
a livello
superiore
comunicaz. "reale"
(non necess. diretta) Entità 
l. fisico
RETE FISICA
Tecnologie Web
10
5
Cos’è Internet: i protocolli - V
• Livelli caratterizzanti la tecnologia Internet: livello rete e
livello trasporto  descriviamo molto brevemente:
– il protocollo IP (Internet Protocol) – livello rete
– il protocollo TCP (Transmission Control Protocol) –
livello trasporto
• Vi sono numerosi protocolli a livello applicativo 
esaminiamo alcuni aspetti di alcuni protocolli:
– DNS (Domain Name System)
otoco ut
utilizzati
at pe
per gestire
gest e laa posta elettronica:
e ett o ca:
– i pprotocolli
SMTP (Simple Mail Transfer Protocol), POP3 (Post Office
Protocol ver. 3), IMAP (Internet Mail Access Protocol)
– HTTP (HyperText Transfer Protocol), il protocollo alla
base del Web
a.a. 2015/16
Tecnologie Web
11
Cos’è Internet: il protocollo IP - I
Protocollo IP (livello rete)
• IP definisce un servizio di comunicazione host-to-host
(trasporto dell'informazione da un host mittente a un host
d ti t i )
destinatario)
• la comunicazione tra host è mediata dai router: host_mittente
 router(s)  host_destinatario
• per identificare i nodi a livello rete si usa un meccanismo di
indirizzamento basato su indirizzi IP
Indirizzi IP
• indirizzo IP = identificatore univoco di nodo in Internet
• NB uno stesso indirizzo IP non è mai assegnato a più di un
nodo, ma un nodo può avere più indirizzi IP
a.a. 2015/16
Tecnologie Web
12
6
Cos’è Internet: il protocollo IP - III
• I router, per inoltrare le informazioni (i datagrammi), si
basano sull'indirizzo IP del destinatario (indicato
nell'intestazione, o header, del messaggio):
– se il destinatario appartiene ad una stessa (sotto)rete del
router, l'informazione viene inoltrata direttamente
– altrimenti il router utilizza la propria tabella di inoltro
(prodotte dai router stessi, con complessi algoritmi di routing)
NB natura dinamica di Internet (si aggiungono/si cancellano
reti/host, ecc.)  tali tabelle vengono aggiornate spesso
• indirizzi a 32 bit (IPv4)  232 indirizzi (più di 4 miliardi),
ma... rapida crescita di Internet + uso non ottimale degli
indirizzi IPv4  carenza di indirizzi IP!!
 IPv6 (in uso accanto ad IPv4): specifica indirizzi di 128
bit (e 2128 è un numero veramente grande!)
a.a. 2015/16
Tecnologie Web
13
Cos’è Internet: il protocollo IP - IV
• Un'organizzazione che necessiti di un blocco di indirizzi IP
per connettere una propria rete ad Internet, può contattare un
ISP (Internet Service Provider)
• Un ISP assegna un blocco di indirizzi IP ad un suo cliente,
cliente
"pescando" fra gli indirizzi che gli sono stati a sua volta
assegnati, in ultima analisi, dall'ICANN (Internet
Corporation for Assigned Names and Numbers), ente
internazionale no-profit con sede negli Stati Uniti
Esempio di indirizzo IP:
 in binario: 11010001100010000100111100100010
 in decimale: 209.136.79.34
a.a. 2015/16
Tecnologie Web
14
7
Cos’è Internet: il protocollo TCP - I
• Il protocollo IP regola la comunicazione tra host, ma...
• su un host possono risiedere più processi (livello
applicativo)  non basta che l'informazione raggiunga
ll'host
host corretto,
corretto bisogna che sull
sull'host
host di destinazione
l'informazione venga recapitata al giusto processo
applicativo (comunicazione tra processi)
Es: nell'applicazione Web, è necessario che l'informazione
proveniente da un browser sia consegnata al Web server di
destinazione (e viceversa); nell'applicazione di posta
elettronica occorre che il messaggio del client di posta
elettronica,
raggiunga il corretto server di posta (e viceversa), ecc.
• il protocollo TCP (livello trasporto) si occupa di questo
(NB: i protocolli di trasporto sono implementati sugli host,
ma non sui router!)
a.a. 2015/16
Tecnologie Web
15
Cos’è Internet: il protocollo TCP - II
• Come fa il protocollo TCP ad identificare il processo giusto a
cui passare l'informazione?
• Ad ogni processo è associato (almeno) un socket, cioè un
"
"punto
t di accesso"" all processo
• TCP identifica un socket grazie alle seguenti informazioni:
indirizzo IP del mittente + numero di porta del mittente +
numero di porta del destinatario (UDP, invece, associa
direttamente socket e numero di porta del destinatario)
• numero di porta = intero a 16 bit (compreso fra 0 e 65.535)
che
h identifica
id ifi una "porta" di comunicazione
i i
tra processii
 TCP (livello trasporto) sfrutta il servizio offerto dal sottostante
protocollo IP per specificare un servizio di invio di
informazione da processo applicativo a processo applicativo
a.a. 2015/16
Tecnologie Web
16
8
Cos’è Internet: architetture
• Al di sopra dell'infrastruttura di rete fornita dai livelli
fisico, collegamento, rete, trasporto è possibile costruire
delle applicazioni... in altre parole è possibile sfruttare la
rete per offrire servizi agli utenti
• Vi sono due principali modelli architetturali di
riferimento per le applicazioni Internet: il modello clientserver ed il modello peer-to-peer (P2P)
a.a. 2015/16
Tecnologie Web
17
Cos’è Internet: architettura P2P
• In un'architettura P2P (peer-to-peer) sono coinvolti 2
processi applicativi dello stesso tipo (chiamati peers, cioè
"pari")
• Ai processi PP non è richiesto di essere sempre attivi e
pronti a rispondere ad eventuali richieste (come avviene,
invece, per i server)
• Solitamente i processi P2P risiedono sugli host degli utenti
finali e non su potenti server di aziende o organizzazioni
pp
Internet realizzate secondo il
• Vi sono varie applicazioni
paradigma P2P, es: applicazioni di telefonia (cosiddetta
VoIP, Voice over IP) come Skype, applicazione per la
condivisione e distribuzione di file, come BitTorrent,
eMule, ecc.
a.a. 2015/16
Tecnologie Web
18
9
Cos’è Internet: architettura client/server - I
Server
request
client
client
client
li t
response
Server
Un server è un programma "in ascolto" su una porta
(punto di accesso) TCP. Quando arriva una richiesta da un
client, il server analizza questa richiesta (eventualmente
con l’aiuto
l’ i
di altri
l i programmi),
i) elabora
l b
una risposta
i
(anche in questo caso, eventualmente con l’aiuto di altri
programmi ) e la invia al client
Un server, generalmente, può servire più client
contemporaneamente
a.a. 2015/16
Tecnologie Web
19
Cos’è Internet: architettura client/server - II
Client
Un client è un programma che si connette ad un server, fa
una richiesta ed aspetta una risposta
• Molte applicazioni Internet sono realizzate secondo il
paradigma client-server, es. il servizio DNS, il Web, la
posta elettronica, ecc.
a.a. 2015/16
Tecnologie Web
20
10
Cos’è Internet: protocolli applicativi - I
I protocolli applicativi (livello applicativo) definiscono le
regole di comunicazione tra client e server
SMTP
SMTP (Simple Mail Transfer Protocol) è il protocollo
utilizzato per trasmettere messaggi di posta elettronica
POP e IMAP
POP (Post Office Protocol) e IMAP (Internet Mail Access
Protocol) sono i protocolli utilizzati per leggere messaggi
di posta elettronica
FTP
FTP (File Transfer Protocol) è il protocollo di
comunicazione utilizzato da un client (FTP client) e da un
server (FTP server) per trasferire file generici
(trasferimento dal server al client = download;
trasferimento dal client al server = upload)
a.a. 2015/16
Tecnologie Web
21
Cos’è Internet: protocolli applicativi - II
DNS
DNS (Domain Name System) è un protocollo utilizzato
per gestire gli indirizzi "simbolici" (www.di.unito.it) e
tradurli in indirizzi IP (209
(209.136.79.34),
136 79 34) necessari per
effettuare la connessione
HTTP
HTTP (HyperText Transfer Protocol) è il protocollo di
comunicazione utilizzato da un client (browser) e da un
server (HTTP Server o Web Server) per trasferire ipertesti
(file che contengono ipertesti)
HTTPS
versione "sicura" di HTTP: il contenuto scambiato tra
client e server viene criptato all'invio (e decriptato alla
recezione)
a.a. 2015/16
Tecnologie Web
22
11
Protocolli applicativi: DNS - I
Il DNS (Domain Name System) è un sistema di
denominazione gerarchico, ripartito in domini, sottodomini, sotto-sotto-domini, ecc…
Dominio = gruppo di host, ad ognuno dei quali è assegnato
un nome logico, che deve essere unico solamente all’interno
del dominio (quindi host in domini diversi possono avere lo
stesso nome!)
Un dominio può essere suddiviso in sotto-domini, che a loro
volta possono essere suddivisi in sotto-sotto-domini, ecc.
Per "costruire"
costruire i nomi da assegnare agli host secondo la
gerarchia definita dal DNS si utilizza la dot notation:
www.di.unito.it
dominio
host
sotto-dominio
sotto-sotto-dominio
a.a. 2015/16
Tecnologie Web
23
Protocolli applicativi: DNS - II
Un’organizzazione internazionale gestisce i domini di primo
livello:
• domini per nazione: .it, .fr .uk, …
• domini pper tipo
p di attività: .com,, .org,
g, .net,, .gov,
g , .edu,, …
All’interno dei singoli domini, un gestore gestisce i sottodomini:
• per es. in Inghilterra ci sono 2 grandi sotto-domini, .ac
(academic) e .co (commercial)
• per es. in Italia un ente può registrare il proprio "dominio"
(che in realtà è un sotto-dominio!) direttamente (per es.
.unito
it per l’Università
l’U i
i à di T
Torino)
i )
Il gestore di un sottodominio (per es. l'Univ. di Torino) può
decidere ulteriori suddivisioni (per es, .di per il Dip. di
Informatica, .scidecom per CdL in Scienze della Comunicaz.)
a.a. 2015/16
Tecnologie Web
24
12
Protocolli applicativi: DNS - III
NB Non c'è alcuna corrispondenza diretta fra i domini e le
reti di elaboratori di Internet (elaboratori della stessa rete
fisica possono trovarsi in domini diversi; lo stesso dominio
ppuò raggruppare
gg pp elaboratori di diverse reti fisiche))
Il DNS è utilizzato per offrire un servizio di traduzione
tra "nomi DNS" e indirizzi IP (dato un DNS www.di.unito.it - restituisce l'IP - 130.192.239.1 necessario per la connessione)
Il servizio di traduzione è realizzato da un gran numero di
Server DNS, organizzati
g
ggerarchicamente, che vengono
g
interrogati da un gran numero di client DNS
a.a. 2015/16
Tecnologie Web
25
Protocolli applicativi: DNS - IV
Esemio: supponiamo di trovarci su un computer (host)
dell'Università di Torino (pippo.unito.it) e di volerci
connettere a www.media.mit.edu:
• il client DNS su pippo invoca il Server DNS del suo
dominio (unito)
• il Server DNS di unito, accorgendosi che non si tratta di un
elaboratore all'interno del proprio dominio, si rivolge al
Server DNS del dominio it (cioè attiva un client DNS che
invia una richiesta al Server DNS di it)
• il Server DNS di it si rivolge al Server DNS di primo livello
(radice della gerarchia), il quale gira la richiesta al Server
DNS del dominio richiesto,, edu
• il Server DNS di edu passa la palla al Server DNS di mit
• il Server DNS di mit passa la palla al Server DNS di media,
che risolve l’indirizzo
• le informazioni vengono passate "all’indietro" lungo la
stessa strada fino a raggiungere il computer chiamante
a.a. 2015/16
Tecnologie Web
26
13
Protocolli applicativi: SMTP, POP, IMAP - I
SMTP (Simple Mail Transfer Protocol)
• protocollo applicativo utilizzato per trasmettere
messaggi di posta elettronica
• sii basa
b
su un'architettura
'architett ra client
client-server
ser er  sull'interazione
ll'i t
i
tra due programmi: un client SMTP e un server SMTP
• Lo scambio di email è possibile solo tra (due) caselle di
postale elettronica (mailbox):
–
–
–
una mailbox è generalmente un file in cui vengono
depositati i messaggi inviati a quella casella
gg di pposta elettronica ppossa
affinché un messaggio
raggiungere i destinatari occorre specificare gli indirizzi
delle mailbox di tali destinatari
l'indirizzo di una casella di posta elettronica ha
generalmente il seguente formato:
nomemailbox@nomedominio (es: unito.it, opp di.unito.it)
a.a. 2015/16
Tecnologie Web
27
Protocolli applicativi: SMTP, POP, IMAP - VI
POP (Post Office Protocol) e
IMAP (Internet Mail Access Protocol)
• Sulla macchina su cui gira il Server SMTP girano anche i
Server POP
S
O e IMAP ((entrambi o uno solo dei due))
• Sulla macchina "server" sono ospitate anche le mailbox
• L'utente, generalmente, accede alla propria mailbox
utilizzando un'applicazione software che gira su un
computer connesso in rete (diverso dal "server")
 tale applicazione deve connettersi al "server" per leggere
il contenuto della mailbox  diventa un client POP/IMAP
(più precisamente, POP3 e IMAP4)
a.a. 2015/16
Tecnologie Web
28
14
Protocolli applicativi: SMTP, POP, IMAP - VII
• POP3: consente di scaricare i messaggi contenuti nella
mailbox "in locale", sul computer dell'utente (dove risiede
l'applicazione contenente il client POP)  i messaggi
verranno,, ggeneralmente,, cancellati dalla mailbox sul "server"
e saranno disponibili sul computer dell'utente  leggibili
anche senza essere connessi in rete, ma disponibili solo sul
computer su cui sono stati scaricati
• IMAP4: consente di leggere i messaggi contenuti nella
mailbox, senza scaricarli sul computer dell'utente  i
messaggi resteranno nella mailbox sul "server"  saranno
leggibili solo ri-connettendosi al "server", da qualunque
computer connesso in rete e dotato di un client IMAP
a.a. 2015/16
Tecnologie Web
29
Protocolli applicativi: HTTP - I
HTTP (HyperText Transfer Protocol)
• HTTP Server = Web Server
HTTP client = (nel) browser
• HTTP Server gestisce 2 flussi di informazioni:
 HTTP request = le richieste in arrivo dagli HTTP
client
 HTTP response = le risposte del Server, inviate agli
HTTP client
HTTP
Server
HTTP request
HTTP client
HTTP client
HTTP client
HTTP response
a.a. 2015/16
Tecnologie Web
30
15
Protocolli applicativi: HTTP - II
Una richiesta HTTP (HTTP request) ha 2 parti:
header (intestazione) e body (contenuto)
HTTP header (intestazione)  contiene:
 il "metodo"
metodo
 l'URL [lo vedremo tra poco...]
 la versione del protocollo HTTP usata
 eventuali metadati (es. charset accettati)
Il "metodo" può avere diversi valori, i più comuni sono
GET e POST:
• GET: esprime la richiesta di una risorsa (indicata nel campo
URL, come vedremo); utilizzando il "metodo" GET, il body
è sempre vuoto: eventuali parametri (dati per il Server) sono
indicati, insieme alla risorsa, nel campo URL (come
vedremo)
a.a. 2015/16
Tecnologie Web
31
Protocolli applicativi: HTTP - III
• POST: esprime la richiesta di una risorsa (indicata nel
campo URL, come vedremo); utilizzando il "metodo"
POST, eventuali parametri (dati per il Server) sono
contenuti nel bodyy (p
(per es. le info inserite dall'utente in un
modulo online)
HTTP body (contenuto)  contiene eventuali dati da inviare
al Server (nel caso si utilizzi il metodo POST)
a.a. 2015/16
Tecnologie Web
32
16
Protocolli applicativi: HTTP - IV
Una risposta HTTP (HTTP response) ha 2 parti:
header (intestazione) e body (contenuto)
HTTP header (intestazione)  contiene:
 il codice di stato del server (per es: 200 = ok, 404 = not
found, 500 = internal server error, ecc...)
 eventuali metadati (es: data, content-type, ...)
HTTP body (contenuto)  contiene tipicamente la risorsa (es.
la pagina web) richiesta [lo vedremo tra poco...]
a.a. 2015/16
Tecnologie Web
33
Protocolli applicativi: HTTPS
HTTPS (HTTP Secure) = versione "sicura" di HTTP:
• il contenuto (sia l'header sia il body) di HTTPrequest e
HTTPrespnse è criptato in fase di invio e decriptato in fase
di recezione
rece ione
• uso combinato di HTTP + protocollo per la trasmissione
sicura di dati  TLS: Transport Layer Security
• TLS è un prococollo basato su crittografia
• TLS, tecnicamente, si situa a livello applicativo, ma in
ppratica rappresenta
pp
un"estensione sicura" dei p
protocolli di
trasporto
a.a. 2015/16
Tecnologie Web
34
17
Protocolli applicativi: HTTP - V
• Il protocollo HTTP è stateless, cioè non memorizza lo stato
di una conversazione client-server  due richieste
successive dello stesso client allo stesso server sono trattate
indipendentemente (e non come un'unica "conversazione")
• A volte, però, è utile che il server abbia "memoria" dei passi
precedenti nella conversazione con un client; per es, in un
sito di e-commerce è importante riconoscere la sequenza di
passi di interazione con un client, ed eventualmente, anche
conversazioni successive (con lo stesso client)
• I principali meccanismi utilizzati dai Web Server per
mantenere "memoria" delle conversazioni con i vari client
sono le sessioni ed i cookies
a.a. 2015/16
Tecnologie Web
35
Protocolli applicativi: HTTP e i cookies - I
Cookies = informazioni di tipo testuale che il server salva(*) sul
client come file; per es, su Windows XP, Firefox3 li salva in:
C:\Documents and Settings\user\Dati
applicazioni\Mozilla\Firefox\Profiles\id_code.default\cookies.sqlite
(*)
Tradizionalmente (Firefox 2) erano file di testo, adesso (Firefox 3) sono
file sqlite (http://www.sqlite.org/)
Es: quando un client invia un primo messaggio di richiesta al server
di un sito di commercio elettronico, il server crea un codice
identificativo per il client, lo memorizza nella propria base di dati e
lo invia anche al client, in un cookie che viene memorizzato sul
client stesso.
stesso Quando il client ricontatta lo stesso server legge il
cookie, recuperando così l'informazione
 i cookies possono essere utilizzati per tenere traccia del
comportamento dell'utente! Per es. per memorizzare cosa ho
cercato o cosa ho acquistato...
a.a. 2015/16
Tecnologie Web
36
18
Protocolli applicativi: HTTP e i cookies - II
• Invio di un cookie (dal server al client): campo set-cookie
nell'HTTP response
• Lettura di un cookie (da parte del server): grazie al campo
cookie nell'HTTP request
• Struttura di un cookie:
 nome del cookie
 valore del cookie
 identificativo del server che lo ha prodotto
 data di scadenza
a.a. 2015/16
Tecnologie Web
37
Protocolli applicativi: HTTP e i cookies - III
NOTE:
(1) Per utilizzarli è necessario
che il client "accetti" i cookies
 è possibile
ibil modificare
difi
la
l
configurazione del browser!
(2) L'utente può cancellarli!
 non sono un metodo tanto
affidabile per mantenere
informazioni importanti…
(3) Un
U server puòò leggere solo
i cookies che lui stesso ha scritto! (il controllo viene
effettuato grazie all'identificativo del server, contenuto nel
cookie)
a.a. 2015/16
Tecnologie Web
38
19
Protocolli applicativi: HTTP e le sessioni - I
Sessione = serie di accessi ad un
sito web, effettuati da uno stesso
sito
client, in un arco di tempo
web
delimitato, durante il quale viene
mantenuto uno stato dell'interazione
sessione1 utente1
sessione2 utente2
sessione3 utente3
ecc…
ecc…
• Inizio di una sessione: il Web Server crea automaticamente
un "oggetto" sessione, con ID univoco, per ogni client che si
connette al sito web
• Fine di una sessione:
 quando scade (timeout) - vedi configuraz. del Web Server
 quando viene esplicitamente dato un comando di "fine
sessione" (per esempio l'utente clicca su "logout" o "esci")
 quando viene chiuso il browser
a.a. 2015/16
Tecnologie Web
39
Protocolli applicativi: HTTP e le sessioni - II
Come fa il server a mantenere "memoria" della sessione? Cioè
a riconoscere una sequenza di accessi da parte di un cient
come facenti parte della stessa sessione?
La sessione può essere gestita attraverso 2 meccanismi:
1. Cookies:
–
–
quando crea la sessione, il Web Server scrive il sessionid in un cookie, che viene letto dal Server stesso ad ogni
successiva interazione
quando la sessione scade o viene chiusa, il cookie viene
distrutto
2. URL rewriting:
g
se i cookies sono stati disattivati il Web Server scrive il
session-id come parametro degli URL presenti nella
pagina (questo meccanismo si chiarirà più avanti,
quando parleremo di URL e poi di parametri negli
URL...)
a.a. 2015/16
Tecnologie Web
40
20
Cos’è il Web - I
Il World Wide Web (WWW) è un'applicazione (servizio)
• che sfrutta i protocolli TCP/IP (livello trasporto e rete)
• basato su un'architettura client-server[*]
• che utilizza il protocollo di comunicazione HTTP (livello
applicativo)
[*]
Come già detto parlando di HTTP...
Server = Web Server (HTTP Server)
Client = (nel) browser (HTTP client)
a.a. 2015/16
Tecnologie Web
41
Cos’è il Web - II
Brevissima storia del World Wide Web
Il WWW nasce nel 1990 al CERN (European Particle Physics
Laboratory) di Ginevra, come mezzo per facilitare la
collaborazione scientifica tra centri di ricerca di fisica delle
particelle. Il suo ideatore è il fisico Tim Berners-Lee
La prima interfaccia grafica per il WWW (il browser Mosaic)
uscì all’inizio del 1993, per opera di Marc Andreessen, che un
anno dopo fondò la Netscape Communication Corp.
Nel 1994, CERN e MIT stipularono un accordo per costituire il
), dedicato alla standardizzazione e allo
Consorzio WWW ((W3C),
sviluppo di protocolli e linguaggi per il Web. Al W3C hanno in
seguito aderito centinaia di altri enti e resta il principale punto di
riferimento per tutto ciò che riguarda il Web (www.w3.org)
a.a. 2015/16
Tecnologie Web
42
21
Cos’è Web: ipertesto - I
Ipertesto
Un ipertesto è un documento (o un insieme di documenti)
costituito da un insieme di nodi e da un insieme di archi,
detti hyperlink (collegamenti ipertestuali), che collegano i
vari nodi
Un ipertesto può essere visto come una "rete", dentro la
quale si può "navigare", passando da un nodo all’altro
percorrendo gli archi
pagina articoli:
home page:
…
articoli
ti li
…
collaborazioni
…
…
editore
…
pagina di un
editore
…
pagina di celi srl
…
A.Goy
…
a.a. 2015/16
Tecnologie Web
43
Cos’è Web: ipertesto - II
Il World Wide Web come ipertesto
Il WWW è un gigantesco ipertesto: i nodi sono costituiti
dalle pagine Web, che risiedono su computer sparsi in
tutto il mondo e collegati tra loro tramite Internet
Il WWW è un ipertesto "aperto" perché la sua strutttura
non è definita a priori, ma chiunque può inserire nuovi
nodi (pagine Web) e nuovi archi (collegamenti)
Quindi...
 pagina Web = nodo dell'ipertesto WWW (come vedremo,
può contenere testo
testo, immagini,
immagini filmati,
filmati suoni,
suoni ecc...)
ecc )
 sito Web = insieme di pagine Web, generalmente residenti
sullo stesso "server", gestite da un unico Web master e con
un contenuto omogeneo
 home page = pagina di accesso ad un sito Web
a.a. 2015/16
Tecnologie Web
44
22
Cos’è Web: ipertesto - III
Cosa accade quando "navighiamo" sul Web, cioè quando
percorriamo un arco (hyperlink - collegamento ipertestuale)
dell'ipertesto, passando così da un nodo all'altro?
In estrema sintesi
sintesi, viene attivata una connessione (TCP/IP)
tra un client (browser) e un Web server; il client (browser)
utilizza il protocollo HTTP per richiedere una pagina Web
al server, il quale risponde inviandola al client, che la
visualizza
Lo strumento principale su ci si basa questo meccanismo è
l'URL
URL (Uniform Resource Locator) = identificatore univoco
(indirizzo) di una risorsa (nodo dell'ipertesto), per es. di una
pagina Web
a.a. 2015/16
Tecnologie Web
45
Cos’è il Web: URL - I
Un URL ha la seguente forma:
http ://www.di.unito.it: 8080 /people/goy.php ?p1=v1&p2=v2
porta TCP
protocollo
dati (p
(parametri),
),
su cuii è in
i
(generalmente
nella forma
ascolto il
http, ma può
nome=valore
server
essere anche
(percorso e) nome
ftp, per es) host (nome
della risorsa (es:
DNS opp
file, programma)
indirizzo IP)
OPZIONALI:
se non specificati, il browser assume il valore di default:
- protocollo = http
- porta = 80
- risorsa = index.html (o altro: vedi configurazione del Web Server)
- parametri = 
a.a. 2015/16
Tecnologie Web
46
23
Cos’è il Web: URL - II
URL nei browser...
Barra degli indirizzi: chiede
al browser di attivare una
connessione HTTP...
Preferiti o Segnalibri: lista di siti (URL)
"interessanti" (archiviati dall’utente)
a.a. 2015/16
Tecnologie Web
47
Cos’è il Web: URL - III
Torniamo alla domanda iniziale: cosa accade quando
"navighiamo" sul Web, cioè quando percorriamo un arco
(hyperlink) passando da un nodo all'altro, per es. scrivendo
un URL nella barra degli indirizzi del browser?
• Il browser
b
analizza
li
l'URL
• Chiede al DNS Server l'indirizzo IP corrispondente al nome
DNS contenuto nell'URL
• Effettua una connessione all'host corrispondente
all'indirizzo IP ricevuto e gli invia una HTTP request
contenente la risorsa indicata nell'URL e gli eventuali
parametri
• Il server risponde inviando una HTTP response contenente
la risorsa richiesta
• Il browser riceve l'HTTP response e interpreta la risorsa in
essa contenuta (come vedremo...)
a.a. 2015/16
Tecnologie Web
48
24
Cos’è il Web: proxy server - I
In realtà non sempre un client
HTTP contatta direttamente
il Web server a cui vuole
i di i
indirizzare
la
l richiesta:
i hi t i
browser infatti sono configurati
per contattare dei server che
fungono da "intermediari" fra
i client stessi e i Web server
destinatari della richiesta

questi intermediari sono i
cosiddetti proxy server
a.a. 2015/16
Tecnologie Web
49
Cos’è il Web: proxy server - II
• Quando un browser è configurato per usare un proxy server,
richiede la risorsa inviando una HTTP request al proxy
server, anziché al Web server:
– S
Se il proxy dispone
di
d ll risorsa
della
i
richiesta
i hi t (memorizzata
(
i t
localmente in precedenza), la invia al client (HTTP response)
– Altrimenti la richiede (HTTP request) al Web server; quando la
riceve (HTTP response) dal Web server, la invia al client
(HTTP response) e la memorizza localmente
• Vantaggi: solitamente, il client è "più vicino" (e connesso
con connessioni più veloci)
eloci) al proxy
pro server
ser er che non al Web
server "destinatario ultimo"  se il proxy dispone della
risorsa richiesta, vengono abbreviati i tempi di risposta e
diminuito il traffico di rete
a.a. 2015/16
Tecnologie Web
50
25
Cos’è il Web: proxy server - III
(1) Il proxy dispone della risorsa richiesta (memorizzata in
precedenza)
HTTP request
HTTP response
client
proxy
Web server
(2) Il proxy non dispone della risorsa richiesta e la richiede al Web
server
HTTP request
HTTP request
HTTP response
HTTP response
Web server
client
proxy
a.a. 2015/16
Tecnologie Web
51
Cos’è il Web: applicazioni web - I
Ma parlare del Web come un ipertesto o di "pagine" e "siti"
web suona così vecchio!!
Questa impressione è giusta o sbagliata??
E' giusta perché (come vedremo) i "siti" sono diventati
applicazioni complesse ed interattive dove l'utente, più che
"navigare", "fa cose" (discute, scrive, archivia, compra,
prenota, studia, gioca, ecc.)
E' sbagliata, perché l'interfaccia utente di queste applicazioni
generalmente non è "nient'altro" che una sequenza di pagine
web!
 applicazione web = (ex) sito web complesso ed interattivo
= software che non necessita di essere installato sul computer
dell'utente, ma che è reso disponibile online ed è utilizzabile
attraverso web browser
a.a. 2015/16
Tecnologie Web
52
26
Cos’è il Web: applicazioni web - II
Conseguenze importanti:
• le applicazioni web tendono a sostituire quelle installate sul
proprio computer (es. word-processors, strumenti di
disegno,
g foto-ritocco, calcolo, montaggio
gg video o audio, ecc.
online)
• la maggioranza delle soluzioni informatiche per la gestione
dell'informazione, della comunicazione e della conoscenza 
tanto in azienda quanto sul territorio e nella Pubblica
Amministrazione  sono applicazioni web
E le mobile app?!? Come vedremo, non fanno eccezione... :-)
la
l programmazione
i
e lo
l sviluppo
il
software
ft
coincidono
i id
sempre di più con la programmazione e lo sviluppo web
La gestione (valutazione, comunicazione, ...) di progetti
ICT coincide sempre di più con la gestione di progetti
basati sulle tecnologie web
a.a. 2015/16
Tecnologie Web
53
Suggerimenti bibliografici
(oltre ai link segnalati nelle slide...)
•
V. Roberto, M. Frailis, A. Gugliotta, P. Omero, Introduzione
alle Tecnologie Web, McGraw-Hill, 2005 [NB: fate
"attenzione" perché è un po' vecchiotto...!]
Frammenti suggeriti:
– Cap. 1 (Il World Wide Web): sez. da 1.1 a 1.7
– Cap. 2 (Il WWW come servizio di rete): sez. da 2.1 a 2.3 + da 2.5 a 2.7
•
V. Della Mea, L. Di Gaspero, I. Scagnetto, Programmazione
Web Lato Server (seconda edizione aggiornata), Apogeo, 2011
Disponibile e-book (PDF) nella collana Apogeo Spicchi: è
possibile acquistare singoli capitoli
[www.apogeonline.com/libri/9788850314799/scheda
www apogeonline com/libri/9788850314799/scheda]
Frammenti suggeriti:
– Cap. 2 (siti web dinamici): sez. 2.1 e 2.2
a.a. 2015/16
Tecnologie Web
54
27