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