Cos’è Internet: le reti di calcolatori - Igoy/materiale/1718/01_InternetWeb_parteI.pdf · 3 I...
-
Upload
truongkhanh -
Category
Documents
-
view
219 -
download
0
Transcript of Cos’è Internet: le reti di calcolatori - Igoy/materiale/1718/01_InternetWeb_parteI.pdf · 3 I...
1
• 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,
i f l di ll ti
Cos’è Internet: le reti di calcolatori - I
connessi fra loro per mezzo di collegamenti
• 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
a.a. 2017/18 Tecnologie Web 1
• 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
• Rete di reti: connette tra loro più reti di calcolatori, spesso con caratteristiche diverse
• Internet è una rete di reti
Cos’è Internet: le reti di calcolatori - II
• 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
a.a. 2017/18 Tecnologie Web 2
• Tecnicamente, "internet" è l'insieme dei protocolli di inter-networking, cioè dei protocolli di comunicazione tra le sotto-reti; i protocolli di inter-networking NON si occupano delle singole reti, ma esclusivamente della comunicazioni tra le reti
2
Ogni rete è dotata di un dispositivo detto router che la connette con l'esterno
Cos’è Internet: le reti di calcolatori - III
internet
router 1 router 2
router 3Rete 1
A
Rete 2
Brouter 4router 5
a.a. 2017/18 Tecnologie Web 3
Rete 3
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 (eventualmente
Cos’è Internet: le reti di calcolatori - IV
2. Comunicazione tra router 1 e router 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)
a.a. 2017/18 Tecnologie Web 4
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
3
I calcolatori (A e B nell'es) connessi grazie a internet sono chiamati host, perché "ospitano" applicazioni varie (es. browser, web server, client di posta, server di posta, ecc.)
Cos’è Internet: le reti di calcolatori - V
Host: possono essere Workstation, PC, computer portatili, tablet, smartphone, telefoni VoIP, televisori o altri elettrodomestici, ecc..
a.a. 2017/18 5Tecnologie Web
• La comunicazione (tra host) è regolata da specifici protocolli di comunicazione
• I protocolli di comunicazione sono organizzati in una
Cos’è Internet: i protocolli - I
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. 2017/18 6Tecnologie Web
4
I protocolli Internet sono organizzati in una gerarchia composta da cinque livelli:
Cos’è Internet: i protocolli - II
Applicativo
Trasporto
Rete
Collegamento
HTTP
TCP
IP
DNS SMTP IMAPPOP FTP Telnet
UDPNB: ad ogni livello possono essere presenti più protocolli: in figura ne abbiamo riportati solo alcuni
a.a. 2017/18 7Tecnologie Web
Collegamento
FisicoProtocolli per cavo coassiale
Protocolli per doppino
Protocolli per fibra ottica
PPP CSMA/CD WiFi
Protocolli per conness. wireless
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...
Cos’è Internet: i protocolli - III
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 che4. Livello di collegamento: contiene i protocolli che 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. 2017/18 8Tecnologie Web
5
Es.: comunicazione tra A e B
Cos’è Internet: i protocolli - IV
Entità l. applicativo
Nodo A
Entità l. applicativo
Nodo B
l. applicativo
Entità l. trasporto
Entità l. rete
l. applicativo
Entità l. trasporto
Entità l. rete
comunicaz. diretta: l'entità ad un dato livellochiededirettamentei servizi ad un'entità al
comunicaz. diretta: l'entità ad un dato livello inoltra l’informaz. ad un'entità a livello
comunicazione virtuale fra entità a livelli corrispondenti
a.a. 2017/18 9Tecnologie Web
Entità l. collegamento
Entità l. fisico
RETE FISICA
comunicaz. "reale" (non necess. diretta)
Entità l. collegamento
Entità l. fisico
livello sottostante
superiore
• Livelli caratterizzanti la tecnologia Internet: livello rete e livello trasporto descriviamo molto brevemente:
– il protocollo IP (Internet Protocol) – livello rete
Cos’è Internet: i protocolli - V
– 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)
– i protocolli utilizzati per gestire la posta elettronica: p otoco ut at pe gest e a posta e ett o ca: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. 2017/18 10Tecnologie Web
6
Protocollo IP (livello rete)
• IP definisce un servizio di comunicazione host-to-host(trasporto dell'informazione da un host mittente a un hostd ti t i )
Cos’è Internet: il protocollo IP - 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. 2017/18 11Tecnologie Web
• 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
Cos’è Internet: il protocollo IP - III
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),indirizzi a 32 bit (IPv4) 2 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. 2017/18 12Tecnologie Web
7
• 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
Cos’è Internet: il protocollo IP - IV
• Un ISP assegna un blocco di indirizzi IP ad un suo 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:Esempio di indirizzo IP:
in binario: 11010001100010000100111100100010
in decimale: 209.136.79.34
a.a. 2017/18 13Tecnologie Web
• Il protocollo IP regola la comunicazione tra host, ma...
• su un host possono risiedere più processi (applicazioni attive) non basta che l'informazione raggiunga l'hostcorretto bisogna che sull'host di destinazione l'informazione
Cos’è Internet: il protocollo TCP - I
corretto, bisogna che sull host di destinazione l informazione venga recapitata al giusto processo applicativo
Es: nel funzionamento del 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 raggiunga il corretto server di posta (e viceversa) eccposta 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. 2017/18 14Tecnologie Web
8
• 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 di accesso" al processo
Cos’è Internet: il protocollo TCP - II
punto di accesso al 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 identifica na "porta" di com nica ione tra processiche identifica una "porta" di comunicazione tra processi
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 (comunicazione tra processi)
a.a. 2017/18 15Tecnologie Web
• 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
Cos’è Internet: architetture
rete per offrire servizi agli utenti
• Vi sono due principali modelli architetturali di riferimento per le applicazioni Internet: il modello client-server ed il modello peer-to-peer (P2P)
a.a. 2017/18 Tecnologie Web 16
9
• In un'architettura P2P (peer-to-peer) sono coinvolti 2 processi applicativi dello stesso tipo (chiamati peers, cioè "pari")
Cos’è Internet: architettura P2P
• Ai processi P2P 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
• Vi sono varie applicazioni Internet realizzate secondo il
a.a. 2017/18 Tecnologie Web 17
ppparadigma P2P, es: applicazioni di telefonia (cosiddetta VoIP, Voice over IP) come Skype, applicazione per la condivisione e distribuzione di file, come BitTorrent, eMule, ecc.
• Anche in un'architettura client-server sono coinvolti 2 processi applicativi
• ... che hanno però caratteristiche diverse (non sono peers,
Cos’è Internet: architettura client/server - I
cioè "pari")
• Ad uno dei due processi (server) è richiesto di essere sempre attivo e pronti a rispondere ad eventuali richieste
• Solitamente i processi server risiedono su host "dedicati" (es. "macchine server" di aziende o organizzazioni)
• Vi sono varie applicazioni Internet realizzate secondo il
a.a. 2017/18 Tecnologie Web 18
Vi sono varie applicazioni Internet realizzate secondo il paradigma client-server... per es il Web!
10
Cos’è Internet: architettura client/server - II
client
clientServer
li trequest
ServerUn server è un programma (processo) "in ascolto" su una porta (punto di accesso) TCP. Quando arriva una richiesta da un client, il server analizza questa richiesta( l l’ i di l i i) l b
clientresponse
a.a. 2017/18 Tecnologie Web 19
(eventualmente con l’aiuto di altri programmi), elabora una risposta (anche in questo caso, eventualmente con l’aiuto di altri programmi ) e la invia al clientUn server, generalmente, può servire più client contemporaneamente
ClientUn client è un programma che si connette ad un server, fa una richiesta ed aspetta una risposta
Cos’è Internet: architettura client/server - III
• Molte applicazioni Internet sono realizzate secondo il paradigma client-server, es. il servizio DNS, il Web, la posta elettronica, ecc.
a.a. 2017/18 Tecnologie Web 20
11
I protocolli applicativi (livello applicativo) definiscono le regole di comunicazione tra client e server
SMTP SMTP (Simple Mail Transfer Protocol) è il protocollo
Cos’è Internet: protocolli applicativi - I
SMTP (Simple Mail Transfer Protocol) è il protocollo utilizzato per trasmettere messaggi di posta elettronica
POP e IMAPPOP (Post Office Protocol) e IMAP (Internet Mail Access Protocol) sono i protocolli utilizzati per leggere messaggi di posta elettronica
FTP
a.a. 2017/18 Tecnologie Web 21
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)
DNSDNS (Domain Name System) è un protocollo utilizzato per gestire gli indirizzi "simbolici" (www.di.unito.it) e tradurli in indirizzi IP (209 136 79 34) necessari per
Cos’è Internet: protocolli applicativi - II
tradurli in indirizzi IP (209.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)
a.a. 2017/18 Tecnologie Web 22
HTTPSversione "sicura" di HTTP: il contenuto scambiato tra client e server viene criptato all'invio (e decriptato alla recezione)
12
Il DNS (Domain Name System) è un sistema didenominazione gerarchico, ripartito in domini, sotto-domini, sotto-sotto-domini, ecc…
Dominio = gruppo di host, ad ognuno dei quali è assegnato
Protocolli applicativi: DNS - I
Dominio gruppo di host, ad ognuno dei quali è assegnatoun nome logico, che deve essere unico solamente all’internodel dominio (quindi host in domini diversi possono avere lostesso nome!)
Un dominio può essere suddiviso in sotto-domini, che a lorovolta possono essere suddivisi in sotto-sotto-domini, ecc.
Per "costruire" i nomi da assegnare agli host secondo la
a.a. 2017/18 Tecnologie Web 23
Per costruire i nomi da assegnare agli host secondo lagerarchia definita dal DNS si utilizza la dot notation:
www.di.unito.it dominiosotto-dominio
sotto-sotto-dominiohost
Un'organizzazione internazionale gestisce i domini di primo livello: • domini per nazione: .it, .fr .uk, …• domini per tipo di attività: .com, .org, .net, .gov, .edu, …
Protocolli applicativi: DNS - II
p p , g, , g , ,
All'interno dei singoli domini, un gestore gestisce i sotto-domini:• 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. it l’U i i à di T i )
a.a. 2017/18 Tecnologie Web 24
.unito per l’Università di Torino)
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.)
13
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 può raggruppare elaboratori di diverse reti fisiche)
Protocolli applicativi: DNS - III
p gg pp )
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 gerarchicamente, che vengono
a.a. 2017/18 Tecnologie Web 25
g g ginterrogati da un gran numero di client DNS
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)
Protocolli applicativi: DNS - IV
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
a.a. 2017/18 Tecnologie Web 26
,• 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
14
SMTP (Simple Mail Transfer Protocol)
• protocollo applicativo utilizzato per trasmettere messaggi di posta elettronica
i b 'architett ra client ser er ll'i t i
Protocolli applicativi: SMTP, POP, IMAP - I
• si basa su un'architettura client-server sull'interazione 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– affinché un messaggio di posta elettronica possa
a.a. 2017/18 Tecnologie Web 27
gg p praggiungere 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)
POP (Post Office Protocol) e IMAP (Internet Mail Access Protocol)
• Sulla macchina su cui gira il Server SMTP girano anche i Server POP e IMAP (entrambi o uno solo dei due)
Protocolli applicativi: SMTP, POP, IMAP - VI
S O ( )
• 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
a.a. 2017/18 Tecnologie Web 28
il contenuto della mailbox diventa un client POP/IMAP (più precisamente, POP3 e IMAP4)
15
• 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, generalmente, cancellati dalla mailbox sul "server"
Protocolli applicativi: SMTP, POP, IMAP - VII
, g ,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
a.a. 2017/18 Tecnologie Web 29
leggibili solo ri-connettendosi al "server", da qualunque computer connesso in rete e dotato di un client IMAP
HTTP (HyperText Transfer Protocol)
• HTTP Server = Web ServerHTTP client = (nel) browser
Protocolli applicativi: HTTP - I
• 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
a.a. 2017/18 Tecnologie Web 30
HTTP client
HTTP clientHTTPServer HTTP client
HTTP request
HTTP response
16
Una richiesta HTTP (HTTP request) ha 2 parti: header (intestazione) e body (contenuto)
HTTP header (intestazione) contiene: il "metodo"
Protocolli applicativi: HTTP - II
il 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
a.a. 2017/18 Tecnologie Web 31
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)
• POST: esprime l'invio di informazioni al server (tipicamente associato alla richiesta di una risorsa, indicata nel campo URL, come vedremo); utilizzando il "metodo" POST, i parametri (dati per il Server) sono contenuti nel
Protocolli applicativi: HTTP - III
, p ( p )body (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. 2017/18 Tecnologie Web 32
17
Una risposta HTTP (HTTP response) ha 2 parti:header (intestazione) e body (contenuto)
HTTP header (intestazione) contiene:
Protocolli applicativi: HTTP - IV
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. 2017/18 Tecnologie Web 33
HTTPS (HTTP Secure) = versione "sicura" di HTTP:
• il contenuto (sia l'header sia il body) di HTTP request e HTTP response è criptato in fase di invio e decriptato in fase di rece ione
Protocolli applicativi: HTTPS
fase di recezione
• 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 pratica rappresenta un"estensione sicura" dei protocolli di
a.a. 2017/18 Tecnologie Web 34
p pp ptrasporto
18
• 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")
Protocolli applicativi: HTTP - V
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)
a.a. 2017/18 Tecnologie Web 35
• I principali meccanismi utilizzati dai Web Server per mantenere "memoria" delle conversazioni con i vari client sono i cookies e le sessioni
Protocolli applicativi: HTTP e i cookies - I
Cookies = dati (di tipo testuale) che il server salva sulclient
Per esempio, quando un client invia un primo messaggio di richiesta al server di un sito di commercio elettronico il server crea un codiceserver 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; quando il client ricontatta lo stesso server, quest'ultimo 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. 2017/18 Tecnologie Web 36
q
In realtà esistono vari tipi di cookies, con caratteristiche un po' diverse: qui vedremo solo alcuni principi generali + i session cookies (cookies di sessione)
19
Protocolli applicativi: HTTP e i cookies - IIa. quando un browser contatta un server per richiedere una
risorsa (per es. la homepage di un sito), il server rispondeinviando la risorsa + un cookie
b. in ogni successiva richiesta, il client invierà, nella grichiesta, anche il cookie
a. invio di un nuovo cookie dal server al client: il cookie
"viaggia" nel campo set-cookie nell'HTTP responseb. lettura (da parte del server) di un cookie esistente: il
cookie "viaggia" nel al campo cookie nell'HTTP request
a.a. 2017/18 Tecnologie Web 37
HTTPServer
HTTP client
HTTP request(campo cookie)
HTTP response(campo set-cookie)
Protocolli applicativi: HTTP e i cookies - III• Struttura (di base) di un cookie:
nome del cookie valore del cookie identificativo del server che lo ha prodotto
un server può leggere solo i cookies che lui stesso ha scritto!
controllo effettuato grazie all'identificativo del server data di scadenza
si possono suddividere i cookies in due macro-categorie: temporary cookies (session cookies): generalmente salvati
in memoria centrale (RAM) hanno scadenza "breve" (es
a.a. 2017/18 Tecnologie Web 38
in memoria centrale (RAM), hanno scadenza breve (es. 30') cancellati (al più tardi) quando si chiude il browser
long-term o persistent cookies: salvati sull'hard-disk del computer client, hanno scandenza "lunga" (giorni o mesi)Esempio: cookies usati per ricordare i dati di login
20
Protocolli applicativi: HTTP e i cookies - IV
In Firefox (v 47.0)
a.a. 2017/18 Tecnologie Web 39
Ogni browser salva i cookies... a modo suo!
Ogni browser salva i cookies... a modo suo!
Protocolli applicativi: HTTP e i cookies - V
NOTE:
(1) Per utilizzarli è necessarioche il client "accetti" i cookies è possibile modificare la configurazione del browser!
(2) L' ò ll li! d
a.a. 2017/18 Tecnologie Web 40
(2) L'utente può cancellarli! non sono un metodo tanto affidabile per mantenere informazioni importanti…
(3) Attenzione ai persistent cookies su PC "pubblici", utilizzati da diversi utenti (o ai persistent cookies sul vostro PC se ve lo rubano... :-( ) !!!
21
Protocolli applicativi: HTTP e le sessioni - I
sito web
utente1
utente2
utente3
sessione1
sessione2
sessione3
Sessione = serie di accessi ad un sito web, effettuati da uno stesso client, in un arco di tempo delimitato, durante il quale viene
• Inizio di una sessione: il Web Server crea automaticamente un "oggetto" sessione, con ID univoco (session ID), per ogni client che si connette al sito web
• Fine di una sessione: quando scade (timeout) - vedi configuraz. del Web Server
d i li it t d t d di "fi
ecc… ecc…mantenuto uno stato dell'interazione
a.a. 2017/18 Tecnologie Web 41
quando viene esplicitamente dato un comando di "fine sessione" (per esempio l'utente clicca su "logout" o "esci")
quando viene chiuso il browser
• Visto che HTTP è stateless... la sessione serve a mantenere traccia di una "conversazione" tra client e server
Protocolli applicativi: HTTP e le sessioni - IICome fa il server a mantenere "memoria" della sessione? Cioè a riconoscere una sequenza di accessi da parte di un client come facenti parte della stessa sessione?La sessione può essere gestita attraverso 2 meccanismi principali:
1. Cookies di sessione (session cookies): – quando crea la sessione, il Web Server scrive il session-
id in un cookie, che viene successivamente inviato dal browser ad ogni successiva richiesta
– quando la sessione scade o viene chiusa, il cookie viene distrutto
2 URL iti
a.a. 2017/18 Tecnologie Web 42
2. URL rewriting: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...)
22
Protocolli applicativi: HTTP e le sessioni - IIIEventuali altri dati sulla sessione sono salvati server-side, tipicamente in una tabella associativa:
session ID 1 dati sulla i 1sessione 1
session ID ... dati sulla sessione ...
session ID n dati sulla sessione n
a.a. 2017/18 Tecnologie Web 43
la gestione delle sessioni è fatta con un approccio ibrido client-side (session cookies) + server-side (tabella associativa dei dati legati alla sessione)
Cos’è il Web - IIl World Wide Web (WWW) è un'applicazione
• che sfrutta i protocolli TCP/IP (livello trasporto e rete)
• che utilizza il protocollo di comunicazione HTTP (livello li ti )applicativo)
• basato su un'architettura client-server; come già detto parlando di HTTP...Server = Web Server (HTTP Server)Client = (nel) browser (HTTP client)
a.a. 2017/18 Tecnologie Web 44
23
Cos’è il Web - II
Brevissima storia del World Wide WebIl 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 dellecollaborazione 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 Consorzio WWW (W3C), dedicato alla standardizzazione e allo
a.a. 2017/18 Tecnologie Web 45
( ),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)
Cos’è Web - IIIIpertesto
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 nodiUn ipertesto può essere visto come una "rete", dentro la quale si può "navigare", passando da un nodo all’altro percorrendo gli archi
home page:…
ti li
pagina articoli:…editore
pagina di un editore
…
a.a. 2017/18 Tecnologie Web 46
articoli…collaborazioni…
…
pagina di celi srl…A.Goy…
24
Cos’è Web - IVIl 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 Internetil 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 immagini filmati suoni ecc )
a.a. 2017/18 Tecnologie Web 47
può contenere testo, immagini, filmati, suoni, 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
Cos’è Web: URL - I
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:In estrema sintesi:• viene attivata una connessione (TCP/IP) tra l'host che ospita
il client (browser) e l'host che ospita il web server• il client (browser) utilizza il protocollo HTTP per richiedere
una pagina web al server, il quale utilizza il protocollo HTTP per rispondere inviando tale pagina al client (che la visualizza)
a.a. 2017/18 Tecnologie Web 48
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
25
Un URL ha la seguente forma:
http ://www.di.unito.it :8080 /people/goy.php ?p1=v1&p2=v2
Cos’è il Web: URL - II
protocollo porta TCPi è i
dati (parametri), (generalmente http, ma può essere anche ftp, per es) host (nome
DNS opp indirizzo IP)
(percorso e) nome della risorsa (es: file, programma)
su cui è in ascolto il server
(p ),nella forma nome=valore
OPZIONALI (se non specificati si assume il valore di default):
a.a. 2017/18 Tecnologie Web 49
OPZIONALI (se non specificati si assume il valore di default):- protocollo = http (default del browser)- porta = 80 (default del web server configurabile)- risorsa = index.html (default del web server configurabile)- parametri: possono non esserci
Cos’è il Web: URL - IIIURL nei browser (es: Firefox):
Barra degli indirizzi: per chiedere al browser di attivare una connessione
History: per muoversi nella lista di URL già visitati
Tecnologie Web 50a.a. 2017/18
HTTP...
Segnalibri (o Preferiti): lista di URL archiviati dall'utente
26
Torniamo alla domanda: 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 analizza l'URL
Cos’è il Web: URL - IV
• Chiede al DNS Server l'indirizzo IP corrispondente al nome DNS contenuto nell'URL
• Effettua una connessione (TCP/IP) all'host corrispondente all'indirizzo IP ricevuto e gli invia una HTTP request contenente l'URL
• Il server legge l'indicazione della risorsa nell'URL (e gli eventuali parametri)
a.a. 2017/18 Tecnologie Web 51
eventuali parametri)• preleva la risorsa e risponde inviando una HTTP response
contenente la risorsa richiesta• Il browser riceve l'HTTP response e interpreta la risorsa in
essa contenuta, tipicamente visualizzandola
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. 2017/18 52Tecnologie Web
27
Cos’è il Web: applicazioni web - IIConseguenze importanti:• le applicazioni web tendono a sostituire quelle installate sul
proprio computer (es. word-processors, strumenti di disegno, foto-ritocco, calcolo, montaggio video o audio, ecc. online)gg )
• 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 programmazione e lo sviluppo software coincidono sempre
di iù l i l il bdi più con la programmazione e lo sviluppo webla gestione (valutazione, comunicazione, ...) di progetti ICT
coincide sempre di più con la gestione di progetti basati sulle tecnologie web
a.a. 2017/18 53Tecnologie Web
Suggerimenti bibliografici
• Innanzi tutto i 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 !]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[www.apogeoeducation.com/9788838786938-programmazione-web-
a.a. 2017/18 Tecnologie Web 54
lato-server-seconda-edizione-aggiornata.html]Frammenti suggeriti:– Cap. 2 (siti web dinamici): sez. 2.1 e 2.2