Cos’è Internet: le reti di calcolatori - Igoy/materiale/1819/01_InternetWeb_parteI.pdf3 I...

27
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, if 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. 2018/19 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. 2018/19 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

Transcript of Cos’è Internet: le reti di calcolatori - Igoy/materiale/1819/01_InternetWeb_parteI.pdf3 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. 2018/19 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. 2018/19 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. 2018/19 Tecnologie Web 3

    Rete 3

    La comunicazione tra due calcolatori A e B avviene in 3 passi:

    1. Comunicazione tra A e il router 12 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. 2018/19 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. 2018/19 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 bassoQuali 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. 2018/19 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. 2018/19 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. 2018/19 8Tecnologie Web

  • 5

    Es.: comunicazione tra A e BCos’è 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. 2018/19 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. 2018/19 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. 2018/19 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. 2018/19 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. 2018/19 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 applicativoEs: 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. 2018/19 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. 2018/19 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. 2018/19 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. 2018/19 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. 2018/19 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

    clientclient

    Serverli t

    request

    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. 2018/19 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. 2018/19 Tecnologie Web 20

  • 11

    I protocolli applicativi (livello applicativo) definiscono le regole di comunicazione tra client e serverSMTP

    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. 2018/19 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. 2018/19 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. 2018/19 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 dominio

    sotto-dominiosotto-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. 2018/19 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. 2018/19 Tecnologie Web 25

    g g ginterrogati da un gran numero di client DNS

    Esempio: 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. 2018/19 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 elettronicai 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. 2018/19 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. 2018/19 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. 2018/19 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 Server

    HTTP 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. 2018/19 Tecnologie Web 30

    HTTP clientHTTP clientHTTP

    Server HTTP clientHTTP 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. 2018/19 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. 2018/19 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. 2018/19 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. 2018/19 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. 2018/19 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 - ICookies = 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. 2018/19 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. 2018/19 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. 2018/19 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 - IVIn Firefox (v 47.0)

    a.a. 2018/19 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 - VNOTE:

    (1) Per utilizzarli è necessarioche il client "accetti" i cookies è possibile modificare la configurazione del browser!

    (2) L' ò ll li! d

    a.a. 2018/19 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. 2018/19 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. 2018/19 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. 2018/19 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. 2018/19 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. 2018/19 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. 2018/19 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 InternetIl 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. 2018/19 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 - ICosa 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. 2018/19 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. 2018/19 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. 2018/19

    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. 2018/19 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 - IMa 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. 2018/19 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. 2018/19 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. 2018/19 Tecnologie Web 54

    lato-server-seconda-edizione-aggiornata.html]Frammenti suggeriti:– Cap. 2 (siti web dinamici): sez. 2.1 e 2.2