La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli Applicativi Alberto Polzonetti

Presentazioni simili


Presentazione sul tema: "Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli Applicativi Alberto Polzonetti"— Transcript della presentazione:

1

2 Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli Applicativi Alberto Polzonetti

3 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 2 Come accedere alle applicazioni APPLICAZIONE APPLICAZIONI SMTPFTPTELNETDNSSNMPNFS PRESENTAZIONE SESSIONE TRASPORTO TCPUDP RETE ICMP IP ARPRARP IGMP COMUNICAZIONE PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTE FISICO Una applicazione deve prima comunicare al software di protocollo che sta aspettando larrivo di un messaggio di un tipo specificato e poi si mette in attesa Quando il protocollo riceve un messaggio che corrisponde esattamente al tipo specificato lo passa applicazione

4 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 3 Argomenti Modello client-server Procedure di inizializzazione Domain Name System Protocolli per la posta elettronica Protocolli per trasferimento files Protocollo HTTP e web server/client Modello client-server Procedure di inizializzazione Domain Name System Protocolli per la posta elettronica Protocolli per trasferimento files Protocollo HTTP e web server/client

5 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 4 Modello client - server Applicazione client Generico programma Si comporta da client quando richiede luso della rete Esegue anche elaborazioni in locale È invocata direttamente dallutente È eseguita localmente sul computer dellutente Contatta attivamente un solo server alla volta Non richiede dispositivi dedicati Applicazione server Programma specializzato Dedicato allerogazione di un servizio Può servire più di un client alla volta Automaticamente invocato allavvio del sistema Attende passivamente di essere contattato dai client Accetta richieste da client arbitrari,ma offre un solo servizio Calcolatore condiviso e macchina potente Il server attende passivamente di essere contattato, mentre il client avvia il processo di comunicazione

6 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 5 Interazione tra client e server EA datijk Trasporto datijk Trasporto datijkAE Rete datijkAE Rete datijkAE 9577 collegam ento datijkAE 9577 collegam ento Internet client server

7 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 6 Servizi multipli TRASPORTO INTER-RETE SCHEDA DI RETE Un calcolatore di classe server può offrire contemporaneamente più servizi, ciascuno dei quali è erogato da una specifica applicazione server TRASPORTO INTER-RETE SCHEDA DI RETE TRASPORTO INTER-RETE SCHEDA DI RETE Client 1Client 2 Server 1Server 2

8 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 7 Creazione dinamica (1) Erogazione dello stesso servizio a più client senza che questi debbano mettersi in coda TCP client Porta effimera TCP client Porta effimera Porte effimere server figlio Server padre TCP Porta nota usata solo per lapertura della connessione Server parallelo con connessioni

9 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 8 Creazione dinamica (2) Erogazione dello stesso servizio a più client memorizzati in una coda in attesa di essere processati Server sequenziale senza connessioni (specifici per server che usano UDP) UDP client Porta effimera UDP client Porta effimera Porta nota Server UDP Un client alla volta

10 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 9 Interfaccia socket 1. Le applicazioni client e server comunicano tramite i protocolli di trasporto 2. Le applicazioni debbono fornire al protocollo molte informazioni API (Application Program Interface): insieme di procedure che le applicazioni possono invocare 3. API non è definita allinterno dei protocolli di comunicazione, ma parte dei sistemi operativi residenti 4. Interfaccia SOCKET standard de facto 1. Nel sistema UNIX BSD linterfaccia socket è parte del sistema operativo 2. Molti produttori aggiungono le socket ai loro sistemi 3. Librerie di procedure (Libreria delle Socket) Mettono a disposizione delle applicazioni un API Socket anche se il sistema operativo sottostante non le prevede Quando le applicazioni chiamano una procedura della libreria essa invoca le funzioni del proprio sistema operativo per ottenere leffetto desiderato

11 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 10 DESCRITTORE SOCKET La comunicazione tramite socket si basa sul concetto di descrittore Il descrittore rappresenta un oggetto Le procedure sono metodi applicati alloggetto Flessibilità nello scrivere una sola applicazione per il trasferimento di dati verso destinazioni di natura diversa Il descrittore può individuare un file I dati saranno scritti sul file Il descrittore può individuare una socket I dati saranno trasferiti verso una applicazione di rete Procedura SOCKET Crea una socket e restituisce il descrittore sd=socket(fam_prot,tipo,protocollo) Fam_prot Famiglia dei protocolli da usare (PF_INET per TCP/IP) (PF_DECnet per DEC) Tipo Modalità di comunicazione 1. Trasmissione orientata alla connessione (SOCK_STREAM) 2. Trasmissione priva di connessione (SOCK_DGRAM) Protocollo Il particolare protocollo di trasporto 0 nel caso TCP/IP sd Descrittore (numero naturale) che individua il socket (-1 for error)

12 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 11 PROCEDURE SOCKET Procedura close Richiede al sistema la chiusura di una socket Close (sd) sd Descrittore (numero naturale) che individua il socket Procedura bind Lega un socket ad un indirizzo socket locale, cioè definisce il valore dellindirizzo socket locale Bind (sd,ind_locale,lungh_ind) sd Descrittore (numero naturale) che individua il socket ind_locale Indirizzo locale da assegnare alla socket lungh_ind Intero che rappresenta la lunghezza dellindirizzo Di solito i client non chiamano la funzione BIND perche dellindirizzo socket locale se ne occupa il sistema operativo Procedura listen Rende la socket passiva sul server per poterla usare per ricevere dati dal client Listen (sd,lungh_coda) lungh_coda Massima lunghezza della coda

13 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 12 PROCEDURE SOCKET (continua) Procedura accept Chiamata dal server e rimuove la prima richiesta di connessione dalla coda corrispondente. Nuova_socket=accept( sd, ind_client,lungh_ind_client) Riempie i campi ind_client con lindirizzo del client che inoltra la richiesta, crea una nuova socket e ne ritorna il descrittore al server Procedura connect Usata dal client per collegarsi al server Connect(sd,ind_server,lungh_ind_serve r) Procedura send Trasferisce i dati in una comunicazione orientata alla connessione Send(sd,dati…..) Procedura sendto Trasferisce i dati in una comunicazione priva di connessione Send(sd,dati, ind_dest…..) Procedura recv Riceve i dati in una comunicazione orientata alla connessione Recv(sd, buffer, …..) Procedura recvfrom Riceve i dati in una comunicazione priva di connessione Recv(sd, buffer, ind_mitt,…..)

14 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 13 Esempio per server parallelo con connessioni socket bind listen socket connect ripetizione accept Close accepting recv processo send ripetizione Close accepting ripetizione send recv Close SERVER CLIENT CHILD

15 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 14 Esempio per server sequenziale senza connessioni socket bind socket ripetizione recvfrom processo sendto ripetizione sendto recvfrom Close SERVER CLIENT

16 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 15 Inizializzazione Linsieme delle operazioni che hanno luogo allavvio dei calcolatori è noto come bootstrap Caricamento dei protocolli Protocolli sono integrati con il sistema operativo Si sfrutta la rete nel processo di boot I protocolli vanno configurati È necessario fornire al protocollo informazioni (parametri) sul sistema Indirizzo IP Indirizzo del router principale Maschera di sottorete Indirizzo del server DNS Indirizzo del server delle stampanti Indirizzi di altri server

17 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 16 Configurazione di protocolli Configurazione basata sullaccesso al disco (file di configurazione) nome_parametro = valore Configurazione automatica RARP ICMP Richiesta maschera degli indirizzi Scoperta del router

18 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 17 Protocollo BOOTP Il protocollo di bootstrap (BOOTP) è un protocollo progettato per ottenere le informazioni di rete (IP, mask, default gateway, name server) quando vengono installate macchine prive di disco CLIENT SERVER 67 UDP Apertura passiva CLIENT SERVER 67 UDP Richiesta 68 richiesta Porta mitte nte Porta destin atario IP mitt IP destin at richiesta 6867 Tutti 0 Tutti 1 CLIENT SERVER 67 UDP Risposta 68 risposta 6768 Indirizzo unicast del server Indirizzo unicast del client

19 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 18 Dynamic Host Configuration Protocol (DHCP) BOOTP è un protocollo di configurazione statico DHCP è una estensione di BOOTP pensata per permettere procedure di configurazione dinamiche e con esso compatibile Un server DHCP ha due data base Uno per la configurazione statica Uno contiene certi numeri di indirizzi IP da assegnare in leasing

20 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 19 DHCP:funzionamento Fase 1 : DHCPDISCOVER Il client cerca di acquisire un indirizzo IP Inviato in broadcast Include il MAC address Fase 2 : DHCPOFFER Inviato da qualsiasi server DHCP che riceve la richiesta discover Offerta indirizzo IP e tempo di leasing Il server congela lindirizzo IP offerto Fase 3 : DHCPREQUEST Il client sceglie le offerte ricevute e ne invia uno al server FASE 4 : DHCPACK Conferma da parte del server Creazione della corrispondenza tra MAC ed IP Rinnovi di licenza Ogni volta che un client DHCP si riavvia Al 50% del tempo

21 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 20 Nomi di Dominio INDIRIZZI IP Registro Nomi it uniroma1 let cri cri.let.uniroma1.it sistema di registrazione unificato Domain Name System (DNS) un nome è decodificato da destra verso sinistra la parte più a destra è definita zona

22 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 21 Segmenti di un nome Il DNS non richiede luso di uno specifico numero di segmenti né richiede cosa debbano rappresentare Per il livello più alto (top level) il DNS : Stabilisce i valori possibili Stabilisce il loro significato

23 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 22 I magnifici sette TLD Icann (Internet Corporation for Assigned Names and Numbers), l'organizzazione internazionale che sovrintende alla gestione degli indirizzi sulla Rete..aero (proposto dalla Società Internazionale de Telecomunications Aeronatique);.biz (proposto da IV-Team);.coop (National Cooperative Business Association);.info (Afilias);.museum (proposto da Museum Domain Management Association);.name (Global Name Registry);.pro (Registry Pro). L'Icann ha invece respinto molti top Level Domain proposti, come.health (per la salute),.travel (per i viaggi),.union,.web e.kids.

24 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 23 UNA PORZIONE DEL DNS

25 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 24 Gerarchia dei nomi com bar sport caffè gelato panna nocciolacioccolato caffè.barsport.com panna.gelato.barsport.com

26 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 25 Modello client-server DNS: gerarchia com bar sport caffè gelato panna nocciolacioccolato com bar sport caffè gelato panna nocciolacioccolato Root server Server di barsport.com Server di gelato. barsport.com Root server Server di barsport.com Server di panna.gelato. barsport.com

27 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 26 Collegamento tra i server (regole) I server DNS sono collegati fra loro e formano un sistema unitario Ogni server è in grado di contattare un root server Ogni server è in grado di contattare tutti i server dei livelli inferiori della gerarchia I root server hanno per zona di controllo lintero spazio dei nomi di dominio (attualmente ne sono 13) Server primario Possiede un file relativo alla zona di sua responsabilità Sono di sua competenza la gestione e laggiornamento del file Server secondario Riceve le informazioni relative ad una certa zona da un altro server primario o secondario Non gestiscono i file Duplica il server primario e può essere utile in caso di problemi di questultimo

28 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 27 Risoluzione di indirizzi Il processo che associa un nome ad un indirizzo IP è detto risoluzione di indirizzo Un host che debba risolvere un indirizzo si rivoge ad un client DNS che si chiama resolver Il resolver Invia una richiesta al DNS server più vicino Il server DNS Invia la risposta se è in grado autonomamente di risolvere lindirizzo Oppure Si rivolge ad un altro server (risoluzione ricorsiva) Comunica al resolver lindirizzo di un altro server (risoluzione iterativa) Associazione di un indirizzo ad un nome (risoluzione inversa) Lindirizzo IP viene invertito e gli vengono aggiunti i suffissi in- addr e arpa Es in-addr.arpa

29 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 28 Risoluzione ricorsiva client Mcgraw. com Fhda.edu 1 edu 2 Root server 3 com

30 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 29 Risoluzione Iterativa client Mcgraw. com Fhda.edu 1 2 edu 3 4 Root server 6 5 com

31 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 30 Ottimizzazioni delle prestazioni Replica su altri server Caching Risposta non autorevole Dynamic Domain Name System (DDNS) Quando viene costituita una nuova corrispondenza nome-indirizzo viene inviato messaggio DHCP ad un server primario Si aggiorna il file di zona Si notifica al server secondario

32 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 31 Messaggi DNS Header 12 byte Record richieste Header 12 byte Record richieste Record risposte Risposte autorevoli Sezione supplementare messaggi richiesta risposta

33 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 32 Record richiesta Query name Query typeQuery class 5admin3atc4fhda3edu0 1A Richiesta di indirizzo IPv4 2NSRichiesta name server 5CNAMEAlias 15MXIndirizzo 28AAAARichiesta indirizzo IPv6 ….……………… 1INinternet

34 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 33 Record Risposta dominio name domain typedomain class Tempo residuo Lunghezza risposta RISPOSTA

35 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 34 Servizi di un programma di posta (1) Aliasing rappresenta la capacità di definire dei nome simbolici per i propri corrispondenti postali in luogo degli indirizzi veri e propri. Per esempio si può decidere che edk sia una efficiente abbrevazione per Folder (cassette postali) Rappresenta la capacità di organizzare la propria posta in opportune caselle postali organizzate secondo un criterio. Ad esempio si possono organizzare caselle con argomenti personali, con avvisi di seminari e con la corrispondenza che si tiene con una determinata persona. Forwarding (ritrasmissione) Ha il significato di ritrasmettere la posta ricevuta sul proprio computer ad un altro utente su un altro computer che può essere interessato a questo argomento. Aliasing rappresenta la capacità di definire dei nome simbolici per i propri corrispondenti postali in luogo degli indirizzi veri e propri. Per esempio si può decidere che edk sia una efficiente abbrevazione per Folder (cassette postali) Rappresenta la capacità di organizzare la propria posta in opportune caselle postali organizzate secondo un criterio. Ad esempio si possono organizzare caselle con argomenti personali, con avvisi di seminari e con la corrispondenza che si tiene con una determinata persona. Forwarding (ritrasmissione) Ha il significato di ritrasmettere la posta ricevuta sul proprio computer ad un altro utente su un altro computer che può essere interessato a questo argomento.

36 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 35 Servizi di un programma di posta (2) Inclusione di file testo Si possono trasmettere interi documenti di tipo testo per posta elettronica senza andare ad usare utility tipo FTP. Mailing List Rappresenta la capacità di trasmettere un messaggio ad un gruppo di persone senza dover trasmettere lo stesso messaggio ad ognuna di esse. Reply Rappresenta il modo più rapido per mandare un messaggio in risposta ad uno precedentemente ricevuto, in quanto il sistema ricopia automaticamente l'indirizzo del mittente inserendolo nella parte destinazione del messaggio da trasmettere. Inclusione di file testo Si possono trasmettere interi documenti di tipo testo per posta elettronica senza andare ad usare utility tipo FTP. Mailing List Rappresenta la capacità di trasmettere un messaggio ad un gruppo di persone senza dover trasmettere lo stesso messaggio ad ognuna di esse. Reply Rappresenta il modo più rapido per mandare un messaggio in risposta ad uno precedentemente ricevuto, in quanto il sistema ricopia automaticamente l'indirizzo del mittente inserendolo nella parte destinazione del messaggio da trasmettere.

37 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 36 Funzionamento Mailer Mail program, mail application, mailer client Software che permette di gestire, leggere e scrivere la posta elettronica Mail Server Computer la cui funzione ricevere, registrare e consegnare la posta elettronica Mailbox File appositamente formattato per registrare i messaggi e- mail e le informazioni correlate

38 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 37 SMTP (Single Mail Transfer Protocol): utilizzato per inviare posta elettronica

39 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 38 POP (Post Office Protocol ): utilizzato per ricevere posta elettronica

40 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 39 Mail Server store and forward

41 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 40 Mail Server Central Mail Spool (Internet Message Access Protocol)

42 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 41 Uso della posta elettronica per trasmettere files ASCII ristretto ed ASCII esteso Impossibile trasmettere un file binario La codifica avviene utilizzando lo standard MIME (Multipurpose Internet Mail Extension) MIME permette a mittente e destinatario la libertà di scegliere lo schema di codifica Il mittente include nellintestazione una riga che indica luso di MIME e nel corpo alcune informazioni che specificano il tipo dei dati inviati e lo schema di codifica adottato. MIME-version: 1.0 Content-type: text/plain

43 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 42 Trasferimento dei file Il sevizio di trasferimento file più diffuso in Internet segue il Protocollo di Trasferimento dei File (FTP) Protocollo generale Trasferimento files di natura arbitraria Controllo degli accessi Superamento delle differenze dei diversi sistemi operativi Il protocollo è stato pensato per essere usato in maniera batch o interattiva Nella maniera interattiva le richieste dei client avvengono mediante una interfaccia di comando

44 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 43 FTP

45 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 44 Comandi e sessione FTP Collegamenti ed autorizzazioni ftp stabilisce una connessione di controllo prima di iniziare a trasferire i dati Si deve fornire una login e password La connessione di controllo rimane attiva fintantoché gli utenti non la chiudono esplicitamente Accesso anonimo Anonymous FTP (account speciale usato solo con ftp) Trasferimento bidirezionale Per ottenere file: get oppure mget Per depositare files : send oppure mput

46 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 45 Comandi e sessione FTP Nomi dei file e caratteri jolly Es: li* Possibili differenze di formato di lunghezza dei nomi Cartelle cd nome cartella Cdup Ls esamina contenuto cartella Tipi di file e modalità di trasferimento Modalità testuale ascii Modalità binaria binary

47 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 46 Esempio di utilizzo

48 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 47 Esempio di utilizzo

49 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 48 Connessione dati Connessione di controllo Connessione dati e di controllo Le connessioni di controllo usate esclusivamente per trasmettere comandi e ricevere le relative risposte Per trasferire i dati si richiede una autonoma connessione creata ex-novo e chiusa alla fine del trasferimento Sono usate porte diverse per evitare conflitti Vantaggi: Eliminazione di ambiguità tra comandi e dati Possibilità di attivare comandi anche quando è in corso una connessione dati Mittente e destinatario applicano lo stato convenzionale di fine file eof Client FTP Server FTP 2120

50 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 49 Altri protocolli relativi ai file Trivial File Transfer Protocol (TFTP) Usa UDP Scarso set di comandi e richiesta di meno memoria Network File System (NFS) Servizio di accesso ai files che permette ai client di modificare o copiare porzioni di files Il client NFS invia al server NFS interessato i dati e la richiesta di scrittura, il server procede alla scrittura ed avvisa il client dellavvenuta operazione Linterfaccia NFS è integrata con il file system del calcolatore Condivisione di cartella

51 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 50 Web Server Un World Wide Web server distribuisce i documenti richiesti http [Hypertext Transfer Protocol] Il Web Server opera nella rete per questo servizio con un protocollo che si chiama http [Hypertext Transfer Protocol]

52 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 51 Web Server Web client Web Server Richiesta http del client Web client Replica http del server

53 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 52 CLIENT WEB VISUALIZZATORI DELLE INFORMAZIONI REPERIBILI IN LINEA SU QUESTO O QUEL SERVER (interfaccia utente – internet) INTERPRETA IL CODICE HTML SINGOLARI PER CAPACITA E STRUTTURAZIONE PROPRIA BROWSER

54 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 53 Che cosa è HTML HyperText Markup Language HyperText Markup Language [HTML] (linguaggio di etichettatura per gli ipertesti) è il linguaggio del World Wide Web. TAG BROWSER Si marcano i files testo con puntine HTML (TAG) in modo tale che essi possano essere letti localmente o in rete da i BROWSER. I TAG sono codici evidenziati dai simboli ; i BROWSER leggono ed interpretano questi codici per formattare il documento sullo schermo

55 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 54 Capacità di HTML Formattazione di documenti Abilità di includere collegamenti (HYPERLINKS) che puntano a documenti o servizi di altri computer Un vasta possibilità di presentare liste Creazione di testi preformattati Visualizzazione di immagini grafiche che possono essere anche usate come punti di collegamento e di mappe grafiche collegabili in punti diversi Creazione di tabelle e di forms

56 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 55 Standard HTML non descrive un testo come un linguaggio di programmazione HTML non descrive un testo come un linguaggio di programmazione Si limita ad evidenziare il contenuto del file con una serie di attributi che sono stati precedentemente definiti Si limita ad evidenziare il contenuto del file con una serie di attributi che sono stati precedentemente definiti il linguaggio ufficiale HTML è dunque uno specifico insieme di TAG che tutti i browser dovrebbero interpretare il linguaggio ufficiale HTML è dunque uno specifico insieme di TAG che tutti i browser dovrebbero interpretare alcuni browser sono capaci di interpretare TAG addizionali al di fuori degli standard alcuni browser sono capaci di interpretare TAG addizionali al di fuori degli standard

57 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 56 Come lavora il browser FUNZIONI BASE trasmissione richiesta ricevimento dati visualizzazione informazioni MODO:GRAFICO NON GRAFICO

58 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 57 Come lavora il browser HELPER APPLICATIONS del proprio computer abilitano ad altre funzioni: ftp news telnet etc... suoni & video Le preferenze impostate determinano come viene visualizzato il documento

59 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 58 FUNZIONAMENTO DEL BROWSER

60 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 59 MOSAIC TIM Barners-Lee.Ha sviluppato nel 1989 il World Wide Web coordinando il lavoro del primo browser tra CERN e NCSA

61 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 60 NETSCAPE Netscape fondata nel 1994, è al suo terzo anno di vita, lazienda a più veloce sviluppo della storia americana. lutile netto del 96 è stato di 21 milioni di dollari su 346 milioni di fatturato incremento sullanno precedente del 305%. dimensioni della azienda si sono quadruplicate e si è arrivati a circa 2000 dipendenti Tutto è cominciato nel 1995 con lentrata in funzione del Web ; la Netscape è stata la più veloce a comprendere limportanza di questa innovazione nel mondo Internet, lanciando Navigotor indispensabile per orientarsi in una ragnatela mondiale che diventa ogni giorno più intricata. Netscape fondata nel 1994, è al suo terzo anno di vita, lazienda a più veloce sviluppo della storia americana. lutile netto del 96 è stato di 21 milioni di dollari su 346 milioni di fatturato incremento sullanno precedente del 305%. dimensioni della azienda si sono quadruplicate e si è arrivati a circa 2000 dipendenti Tutto è cominciato nel 1995 con lentrata in funzione del Web ; la Netscape è stata la più veloce a comprendere limportanza di questa innovazione nel mondo Internet, lanciando Navigotor indispensabile per orientarsi in una ragnatela mondiale che diventa ogni giorno più intricata. James H. Clark

62 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 61 MICROSOFT INTERNET EXPLORER

63 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 62 INDIRIZZO (URL) COME: - Hyper Text Transef Protocol, il protocollo di trasmissione di ipertesti DOVE : - Il nome del server QUALE: /SiliconValley/Park/ - La parte del computer del server (geocities) dove è la pagina. "index.htm" è il nome della pagina. COME: - Hyper Text Transef Protocol, il protocollo di trasmissione di ipertesti DOVE : - Il nome del server QUALE: /SiliconValley/Park/ - La parte del computer del server (geocities) dove è la pagina. "index.htm" è il nome della pagina.

64 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 63 Che cosa è una URL Uniform Resource Locator Uniform Resource Locator[URL] rappresenta la chiave per localizzare ed interpretare le informazioni in Internet. E la maniera standard per descrivere sia la locazione della risorsa che il suo contenuto SINTASSI STANDARD : nomeservizio://indirizzohost/risorsa

65 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 64 Differenti servizi index.html ftp://camcic.unicam.it/pub gopher://camcic.unicam.it/ news:news.announce.conference telnet://camcic.unicam.it file://esemp01.html

66 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 65 Server WEB Server WEB = piattaforma + software + informazioni computer Hard disk documenti RETE httpd HTTP

67 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 66 HTTP Protocollo per il trasporto degli ipertesti (HyperText Transport Protocol) Permette al browser di richiedere uno specifico documento Permette al server web di trasmetterlo lungo la connessione Il protocollo definisce il formato delle richieste e delle risposte Fino a tutto il 97 browser e server erano implementati con la versione HTTP/1.0 definita da RFC 1945 Di seguito è stata implementata la versione HTTP/1.1 definita da RFC 2616 Le due versioni sono compatibili

68 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 67 Penetrazione dei server web Server Number Percentage Apache % Microsoft-IIS % Netscape-Enterprise %

69 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 68 Architettura dei server WEB Attendono la richiesta di connessione da parte del browser Accettano la richiesta Attendono la richiesta di uno specifico documento Inviano una copia lungo la connessione Chiudono la connessione Ricominciano da capo

70 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 69 Connessioni e servizi web Porta di default del server 80 Altri servizi web implementati su altre porte es. 8080, Server virtuali supportata da un estensione del sistema operativo denominata supporto host virtuale Connessioni non permanenti e permanenti Richiesta HTTP Risposta HTTP Richiesta HTTP Risposta HTTP

71 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 70 Formato generale di una richiesta metodoSPURLSPVersioneCRLF Linea di richiesta campo nome intestazione:valoreCRLF Linea di intestazione.... campo nome intestazione:valoreCRLF CRLF Corpo dellentità

72 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 71 Linea di richiesta METODO GET Restituisce loggetto HEAD Restituisce solo le informazioni sulloggetto POST Input dei forms Altri metodi URL url del documento VERSIONE Versione http

73 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 72 Linea di intestazione CAMPOVALORE User agentTipo di browser che effettua la richiesta Accept I tipi MIME che il browser è preparato ad accettare HostNome dellhost a cui connettersi ConnectionTipo di connessione AuthorizationLa password dellutente If Modified Since Richiede che loggetto venga restituito solo se più recente della data specificata

74 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 73 Esempio di una richiesta GETSP Somedir/page. html SP HTTP/1. 1 CRLF Linea di richiesta HOST: hool.net CRLF Linea di intestazione Connection:closeCRLF User-agent: Mozilla/ 4.0 CRLF Accept-language:frCRLF CRLF Quando il metodo è GET non è usato il corpo dellentità

75 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 74 Formato generale di una risposta VersioneSPCodice di statoSPFraseCRLF Linea di stato campo nome intestazione:valoreCRLF Linea di intestazione.... campo nome intestazione:valoreCRLF CRLF Corpo dellentità

76 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 75 Linea di stato Versione Versione protocollo Codice di Stato e Frase 200OK 301Moved Permanently 400Bad Request 404Not Found 505HTTP Version non supported

77 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 76 Linea di intestazione CAMPOVALORE DateData in cui la risposta è stata creata ServerTipo di software che ha creato la risposta Last-ModifiedUltima modifica delloggetto trasferito ConnectionTipo di connessione Content-LenghtNumero di byte delloggetto da spedire Content-TypeTipo MIME delloggetto Content-EncodeUlteriore codifica

78 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 77 Esempio di una risposta HTTP/1.1SP200SPOKCRLF Linea di stato Connection:CloseCRLF Linea di intestazio ne Date: Thu, 06 Aug :00:15 GMT CRLF Server: Apache/1.3.0 (UNIX) CRLF Last-Modified: Mon, 22 jun :23:24 GMT CRLF Content-Lenght:6821CRLF Content-Type:Text/htmlCRLF CRLF OGGETTO

79 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 78 Autenticazione e cookie Il client invia un messaggio di richiesta ordinario Server risponde con codice di stato 401 Authorization Required e con intestazione WWW- Authenticate: Il client risponde con Authorization: completa di user name e password Dopo aver ottenuto il primo oggetto il client continua sempre ad inviare il campo Authorization Il server invia una intestazione Set cookie : Il client appende una linea ad uno speciale file cookie che comprende il nome dellhost associato allidentificazione Nelle richieste successive allo stesso server il client include una intestazione Cookie : Il server sa che questo utente ha fatto una richiesta la settimana prima

80 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 79 ARCHITETTURA dei BROWSER Unità di controllo Input dal mouse o dalla tasiera driver Interprete facoltativo Interprete HTML Output inviato allo schermo Client facoltativo Client HTTP Scheda di rete Comunicazione con il server WEB Richiesta di riferimento hyperlink Esecuzione di un client per acquisire il documento Esecuzione di un interprete per visualizzare i contenuti

81 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 80 Architettura del browser Interprete Accetta in ingresso un testo ASCII Fornisce in uscita il testo impaginato Tiene traccia delle relazioni intercorrenti fra le posizioni sullo schermo degli oggetti selezionabili e le ancore presenti inhtml, perché il browser sfrutta la posizione delloggetto per determinare quale riferimento eseguire Client facoltativi Client per altri servizi da effettuare in maniera trasparente per lutente (ftp, , ecc..) Cache Migliora la rapidità di accesso ai documenti

82 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 81 Cache del client : GET condizionato Richiesta client GET /fruit/kiwi.gif HTTP/1.0 Risposta server HTTP/ OK Date: wed, 12 aug :39:12 Server: Apache/1.3.0 (unix) Last-Modified: Mon, 22 jun :23:24 Content Type: image/gif Il client memorizza loggetto nella propria cache Richiesta client dopo una settimana GET /fruit/kiwi.gif HTTP/1.0 If-modified-since: Mon, 22 jun :23:24 Risposta server HTTP/ NOT MODIFIED Date: wed, 19 aug :39:12 Server: Apache/1.3.0 (unix) CORPO DELLENTITA VUOTO

83 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 82 Cache del web server: proxy server Il browser stabilisce una connessione TCP con il proxy server ed invia una richiesta HTTP di un oggetto Se loggetto cercato è nel proxy, questo inoltra loggetto nel messaggio di risposta Se loggetto cercato non ce, il proxy apre una connessione TCP con il destinatario originale ed invia una richiesta HTTP delloggetto specificato Quando il proxy riceve loggetto ne archivia una copia nella memoria locale ed invia loggetto allinterno di un messaggio di risposta HTTP

84 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 83 Vantaggi di un server proxy Riduzione dei tempi di risposta Riduzione consistente di traffico internet Infrastruttura per la rapida diffusione dei contenuti richiesti Analisi del traffico in uscita

85 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 84 Tipi di documenti WEB Documenti statici Documenti Dinamici Il server deve eseguire una applicazione (SCRIPT) in presenza di una richiesta Il server riceve loutput dallapplicazione e lo restituisce al client Documenti attivi Non sono specificati in tutto e per tutto dal server Consistono in una applicazione che il server invia al richiedente Il browser esegue lapplicazione localmente ed il risultato rappresenta il documento attivo Hanno la capacità di aggiornarsi continuamente

86 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 85 DOCUMENTI STATICI Il documento risiede su un file associato al web server Sono in forma testuale (text/plain o text/html) Il contenuto e determinato dallautore al momento della creazione Rimangono invariati fino a che non sono modificati dallautore Vantaggi Facili da creare Sono visualizzati velocemente dal browser Svantaggi Interazione limitata Tendono a invecchiare per mancata manutenzione

87 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 86 Documenti dinamici Il documento non esiste in un forma predefinita Il documento e generato dal server su richiesta del browser Il contenuto può variare tra una richiesta e laltra Il server contiene un programma (compilato o interpretato) il cui output e restituito al browser il browser mostra loutput come una pagina HTML Vantaggi Generano il contenuto dipendentemente dallinput dellutente Svantaggi Necessita di programmare per la creazione automatica del contenuto (qualsiasi linguaggio interpretato o eseguito dal server) Non esistono standard Linput può essere validato solo dal server

88 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 87 Documenti Dinamici Common Gateway Interface Standard che stabilisce le modalità di interazione tra server web ed applicazioni Procedura di interazione il browser invia al server Web una richiesta facendo riferimento al nome dellapplicazione seguita da una serie di parametri; il server Web riconosce che la richiesta deve essere indirizzata allapplicazione specificata e ne attiva unistanza passandole opportunamente i parametri lapplicazione effettua lelaborazione in base ai parametri acquisiti e crea sullo standard output un flusso di dati che costituisce la pagina di risposta per il browser. il server Web cattura il flusso di dati generato dallapplicazione CGI e la trasforma in una risposta HTTP

89 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 88 Applicazioni CGI Lapplicazione CGI(programma CGI) può essere uno script di shell del sistema operativo uno script di un linguaggio interpretato (ad esempio Perl) una applicazione vera e propria sviluppata con un qualsiasi linguaggio di programmazione e che segue alcune regole per interfacciarsi con il Web. I programmi CGI e il server comunicano principalmente attraverso quattro modi: Variabili ambientali di sistema Comando di linea (usato per eseguire il programma CGI in una shell di sistema operativo) Standard Input (usato soprattutto con il metodo POST) Standard Output

90 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 89 Standard Output il server lascia libero il programma CGI di determinare il tipo di dati da inviare al client, ovviamente entro i limiti delle possibilità offerte dal protocollo HTTP. Perciò il programma CGI non è tenuto a generare necessariamente un documento HTML, ma può trasmettere anche un tipo diverso di dati, secondo quanto previsto dallo standard MIME Ciò dà la possibilità di integrare in Internet l'interattività delle form con la multimedialità offerta dal protocollo HTTP. In generale, il programma CGI, come operazione preliminare, deve inviare sullo Standard Output una intestazione in cui viene specificato il tipo di dati inviato. Tale intestazione consiste nell'assegnazione "Content- type: MIME type" seguita da una o più linee vuote. Basta specificare questa informazione: sarà poi il server a formare il pacchetto completo per il client Per esempio, l'intestazione che deve precedere l'invio di un documento HTML da parte di un programma CGI è la seguente: Content-type: text/html * una o più linee vuote (LF o CRLF) *

91 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 90 Limiti della programmazione CGI Carico di elaborazione per il server Linterfaccia non supporta un insieme esaustivo di tipi di dati Linterfaccia non supporta controllo dei dati imessi dalla parte del client Lutente deve premere per ogni coinvolgimento del server Tenere traccia dello stato tra due richieste e complesso e inefficiente Tuttavia, la manutenzione delle applicazioni e semplice: le modifiche ai dati comportano solo modifiche allo script e ai form acceduti dai client

92 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 91 Documenti attivi Il documento non è completamente specificato dal server Consiste di un programma che e scaricato dal server sul browser Il browser deve essere in grado di eseguire il programma Il programma interagisce con lutente tramite tastiera e mouse Il display è aggiornato senza che sia richiesta una connessione al server il programma può leggere/scrivere file locali e contattare altri servizi Internet Vantaggi Massima flessibilità: client dinamici Interfacce utente più avanzate (es. toolbar) Maggiori funzionalità disponibili Svantaggi Browser più complesso il programma deve poter essere eseguito su tutti i computer o quasi Non esistono standard: applet Java, JavaScript, Jscript, VBScript, ActiveX controls

93 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 92 JAVA Java e utilizzabile per la creazione di documenti web attivi Java e un linguaggio di programmazione sviluppato da pochi programmatori Sun (James Gosling et al.) nel 1994 stile simile al C++ ma principi presi da Smalltalk pensato come linguaggio di embedded software per piccoli dispositivi non computer adattato per essere un linguaggio per la programmazione di applicazioni distribuite web-based e cross-platform Java e una piattaforma software Java Virtual Machine (VM): fornisce un ambiente runtime per lesecuzione di un programma Java Java API: librerie di classi riusabili isolano le dipendenze dal sistema

94 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 93 Programmi JAVA JDK (Java Development Kit) include un compilatore a linea di comando javac traduce codice sorgente Java in bytecode (rappresentazione binaria per una macchina virtuale: VM) Controllo correttezza sintattica riferimenti a classi esterne Scrittura del programma in formato bytecode su file con estensione.class Ambienti di sviluppo visuali e interattivi basati sul JDK PowerJ (Sybase), VisualAge for Java (IBM), Visual J++ (Microsoft), JBuilder (Borland), Java Workshop (Sun), Visual Cafe (Symantec)

95 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 94 Programmi JAVA Interpretazione dei bytecode ed esecuzione Standalone Eseguito direttamente dallutente sulla piattaforma Java Applet Eseguito da un web browser che contiene la Java VM (interprete dei bytecodes) Il bytecode del programma e incluso nelle pagine HTML Lesecuzione della pagina HTML causa il download dellapplet dal server al client e lesecuzione nel client Servlet Eseguito da un web server che contiene la Java VM Simile a un programma CGI

96 Alberto Polzonetti Reti di calcolatori Lezione 14( 03/04) Protocolli Applicativi 95 Lezione 14 Bibliografia


Scaricare ppt "Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli Applicativi Alberto Polzonetti"

Presentazioni simili


Annunci Google