La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso di laurea in INFORMATICA

Presentazioni simili


Presentazione sul tema: "Corso di laurea in INFORMATICA"— Transcript della presentazione:

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

2 Come accedere alle applicazioni
APPLICAZIONE APPLICAZIONI SMTP FTP TELNET DNS SNMP NFS PRESENTAZIONE SESSIONE TRASPORTO TCP UDP RETE ICMP IP ARP RARP IGMP COMUNICAZIONE PROTOCOLLI DEFINITI DALLA RETE SOTTOSTANTE FISICO Una applicazione deve prima comunicare al software di protocollo che sta aspettando l’arrivo 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 Lezione 14( 03/04) Protocolli Applicativi

3 Lezione 14( 03/04) Protocolli Applicativi
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 Lezione 14( 03/04) Protocolli Applicativi

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

5 Interazione tra client e server
dati j k Trasporto dati j k Trasporto dati j k A E Rete dati j k A E Rete dati j k A E 95 77 collegamento dati j k A E 95 77 collegamento Internet Lezione 14( 03/04) Protocolli Applicativi

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

7 Lezione 14( 03/04) Protocolli Applicativi
Creazione dinamica (1) Erogazione dello stesso servizio a più client senza che questi debbano mettersi in coda TCP client Porta effimera Porte effimere serverfiglio Server padre Porta nota usata solo per l’apertura della connessione Server parallelo con connessioni Lezione 14( 03/04) Protocolli Applicativi

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

9 Lezione 14( 03/04) Protocolli Applicativi
Interfaccia socket Le applicazioni client e server comunicano tramite i protocolli di trasporto Le applicazioni debbono fornire al protocollo molte informazioni API (Application Program Interface): insieme di procedure che le applicazioni possono invocare API non è definita all’interno dei protocolli di comunicazione, ma parte dei sistemi operativi residenti Interfaccia SOCKET standard de facto Nel sistema UNIX BSD l’interfaccia socket è parte del sistema operativo Molti produttori aggiungono le socket ai loro sistemi 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 l’effetto desiderato Lezione 14( 03/04) Protocolli Applicativi

10 DESCRITTORE SOCKET Procedura SOCKET Fam_prot Tipo Protocollo sd
La comunicazione tramite socket si basa sul concetto di descrittore Il descrittore rappresenta un oggetto Le procedure sono metodi applicati all’oggetto 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 Trasmissione orientata alla connessione (SOCK_STREAM) 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) Lezione 14( 03/04) Protocolli Applicativi

11 PROCEDURE SOCKET Procedura close sd Procedura bind sd ind_locale
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 dell’indirizzo 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 dell’indirizzo Di solito i client non chiamano la funzione BIND perche dell’indirizzo 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 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 l’indirizzo 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_server) Procedura send Trasferisce i dati in una comunicazione orientata alla connessione Send(sd,dati…..) Procedura recv Riceve i dati in una comunicazione orientata alla connessione Recv(sd, buffer, …..) Procedura sendto Trasferisce i dati in una comunicazione priva di connessione Send(sd,dati, ind_dest…..) Procedura recvfrom Riceve i dati in una comunicazione priva di connessione Recv(sd, buffer, ind_mitt,…..) Lezione 14( 03/04) Protocolli Applicativi

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

14 Esempio per server sequenziale senza connessioni
socket bind socket CLIENT ripetizione sendto recvfrom Close ripetizione recvfrom processo sendto Lezione 14( 03/04) Protocolli Applicativi

15 Lezione 14( 03/04) Protocolli Applicativi
Inizializzazione L’insieme delle operazioni che hanno luogo all’avvio 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 Lezione 14( 03/04) Protocolli Applicativi

16 Configurazione di protocolli
Configurazione basata sull’accesso al disco (file di configurazione) nome_parametro = valore Configurazione automatica RARP ICMP Richiesta maschera degli indirizzi Scoperta del router Lezione 14( 03/04) Protocolli Applicativi

17 Lezione 14( 03/04) Protocolli Applicativi
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 richiesta Porta mittente Porta destinatario IP mitt IP destinat CLIENT SERVER 67 UDP Richiesta 68 richiesta 68 67 Tutti 0 Tutti 1 CLIENT SERVER 67 UDP Risposta 68 risposta 67 68 Indirizzo unicast del server Indirizzo unicast del client 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” Lezione 14( 03/04) Protocolli Applicativi

19 Lezione 14( 03/04) Protocolli Applicativi
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 l’indirizzo 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 Lezione 14( 03/04) Protocolli Applicativi

20 Lezione 14( 03/04) Protocolli Applicativi
Nomi di Dominio INDIRIZZI IP Registro Nomi sistema di registrazione unificato Domain Name System (DNS) un nome è decodificato da destra verso sinistra la parte più a destra è definita zona it uniroma1 let cri cri.let.uniroma1.it Per non doversi ricordare tutte le volte un indirizzo numerico, le varie reti che partecipano a Internet si sono accordate per definire uno standard di nomi alfanumerici, in modo che l'utente debba digitare ad esempio e poi l'indirizzamento avvenga automaticamente verso l'indirizzo numerico giusto. La traduzione dell'indirizzo da caratteri a numeri e' il compito di specifici computer chiamati Name Server Questo sistema di nomi e' il Domain Name System (DNS) Lezione 14( 03/04) Protocolli Applicativi

21 Lezione 14( 03/04) Protocolli Applicativi
Segmenti di un nome Il DNS non richiede l’uso 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 Lezione 14( 03/04) Protocolli Applicativi

22 Lezione 14( 03/04) Protocolli Applicativi
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. Lezione 14( 03/04) Protocolli Applicativi

23 Lezione 14( 03/04) Protocolli Applicativi
UNA PORZIONE DEL DNS Lezione 14( 03/04) Protocolli Applicativi

24 Lezione 14( 03/04) Protocolli Applicativi
Gerarchia dei nomi com bar sport caffè gelato panna nocciola cioccolato caffè.barsport.com panna.gelato.barsport.com Lezione 14( 03/04) Protocolli Applicativi

25 Modello client-server DNS: gerarchia
Root server Root server com bar sport caffè gelato panna nocciola cioccolato com bar sport caffè gelato panna nocciola cioccolato Server di barsport.com Server di barsport.com Server di gelato. barsport.com Server di panna.gelato. barsport.com 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 l’intero 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 l’aggiornamento 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 quest’ultimo 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 l’indirizzo Oppure Si rivolge ad un altro server (risoluzione ricorsiva) Comunica al resolver l’indirizzo di un altro server (risoluzione iterativa) Associazione di un indirizzo ad un nome (risoluzione inversa) L’indirizzo IP viene invertito e gli vengono aggiunti i suffissi in-addr e arpa Es  in-addr.arpa Lezione 14( 03/04) Protocolli Applicativi

28 Risoluzione ricorsiva
Root server 3 6 7 8 9 10 edu 2 com 4 5 Fhda.edu 1 client Mcgraw.com Lezione 14( 03/04) Protocolli Applicativi

29 Risoluzione Iterativa
Root server 6 5 edu 3 4 com 7 8 Fhda.edu 1 2 client Mcgraw.com 9 10 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 Lezione 14( 03/04) Protocolli Applicativi

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

32 Lezione 14( 03/04) Protocolli Applicativi
Record richiesta 5 a d m i n 3 t c 4 f h e u Query name Query type Query class 1 A Richiesta di indirizzo IPv4 2 NS Richiesta name server 5 CNAME Alias 15 MX Indirizzo 28 AAAA Richiesta indirizzo IPv6 …. …… ………… 1 IN internet Lezione 14( 03/04) Protocolli Applicativi

33 Lezione 14( 03/04) Protocolli Applicativi
Record Risposta dominio name domain type domain class Tempo residuo Lunghezza risposta RISPOSTA 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. 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. Lezione 14( 03/04) Protocolli Applicativi

36 Lezione 14( 03/04) Protocolli Applicativi
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 le informazioni correlate Lezione 14( 03/04) Protocolli Applicativi

37 Lezione 14( 03/04) Protocolli Applicativi
SMTP (Single Mail Transfer Protocol): utilizzato per inviare posta elettronica Lezione 14( 03/04) Protocolli Applicativi

38 POP (Post Office Protocol ): utilizzato per ricevere posta elettronica
Lezione 14( 03/04) Protocolli Applicativi

39 Mail Server store and forward
Lezione 14( 03/04) Protocolli Applicativi

40 Mail Server Central Mail Spool (Internet Message Access Protocol)
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 nell’intestazione una riga che indica l’uso 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 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 Lezione 14( 03/04) Protocolli Applicativi

43 Lezione 14( 03/04) Protocolli Applicativi
FTP Lezione 14( 03/04) Protocolli Applicativi

44 Lezione 14( 03/04) Protocolli Applicativi
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 Lezione 14( 03/04) Protocolli Applicativi

45 Lezione 14( 03/04) Protocolli Applicativi
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 Lezione 14( 03/04) Protocolli Applicativi

46 Lezione 14( 03/04) Protocolli Applicativi
Esempio di utilizzo Lezione 14( 03/04) Protocolli Applicativi

47 Lezione 14( 03/04) Protocolli Applicativi
Esempio di utilizzo Lezione 14( 03/04) Protocolli Applicativi

48 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 Connessione dati 21 20 Connessione di controllo 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 dell’avvenuta operazione L’interfaccia NFS è integrata con il file system del calcolatore Condivisione di cartella Lezione 14( 03/04) Protocolli Applicativi

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

51 Lezione 14( 03/04) Protocolli Applicativi
Web Server Web client Web Server Richiesta http del client Web client Replica http del server Lezione 14( 03/04) Protocolli Applicativi

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

53 Lezione 14( 03/04) Protocolli Applicativi
Che cosa è HTML HyperText Markup Language [HTML] (linguaggio di etichettatura per gli ipertesti) è il linguaggio del World Wide Web. 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 < e > ; i BROWSER leggono ed interpretano questi codici per formattare il documento sullo schermo Lezione 14( 03/04) Protocolli Applicativi

54 Lezione 14( 03/04) Protocolli Applicativi
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” Lezione 14( 03/04) Protocolli Applicativi

55 Lezione 14( 03/04) Protocolli Applicativi
Standard 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 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 Lezione 14( 03/04) Protocolli Applicativi

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

57 Lezione 14( 03/04) Protocolli Applicativi
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 Lezione 14( 03/04) Protocolli Applicativi

58 FUNZIONAMENTO DEL BROWSER
Lezione 14( 03/04) Protocolli Applicativi

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

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

61 MICROSOFT INTERNET EXPLORER
Lezione 14( 03/04) Protocolli Applicativi

62 Lezione 14( 03/04) Protocolli Applicativi
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. Lezione 14( 03/04) Protocolli Applicativi

63 Lezione 14( 03/04) Protocolli Applicativi
Che cosa è una URL 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 Lezione 14( 03/04) Protocolli Applicativi

64 Lezione 14( 03/04) Protocolli Applicativi
Differenti servizi ftp://camcic.unicam.it/pub gopher://camcic.unicam.it/ news:news.announce.conference telnet://camcic.unicam.it file://esemp01.html Lezione 14( 03/04) Protocolli Applicativi

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

66 Lezione 14( 03/04) Protocolli Applicativi
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 Lezione 14( 03/04) Protocolli Applicativi

67 Penetrazione dei server web
Server Number Percentage Apache % Microsoft-IIS % Netscape-Enterprise % 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 Lezione 14( 03/04) Protocolli Applicativi

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

70 Formato generale di una richiesta
metodo SP URL Versione CR LF Linea di richiesta campo nome intestazione : valore Linea di intestazione . Corpo dell’entità Lezione 14( 03/04) Protocolli Applicativi

71 Lezione 14( 03/04) Protocolli Applicativi
Linea di richiesta METODO GET Restituisce l’oggetto HEAD Restituisce solo le informazioni sull’oggetto POST Input dei forms Altri metodi URL url del documento VERSIONE Versione http Lezione 14( 03/04) Protocolli Applicativi

72 Lezione 14( 03/04) Protocolli Applicativi
Linea di intestazione CAMPO VALORE User agent Tipo di browser che effettua la richiesta Accept I tipi MIME che il browser è preparato ad accettare Host Nome dell’host a cui connettersi Connection Tipo di connessione Authorization La password dell’utente If Modified Since Richiede che l’oggetto venga restituito solo se più recente della data specificata Lezione 14( 03/04) Protocolli Applicativi

73 Esempio di una richiesta
GET SP Somedir/page.html HTTP/1.1 CR LF Linea di richiesta HOST : Linea di intestazione Connection close User-agent Mozilla/4.0 Accept-language fr Quando il metodo è GET non è usato il corpo dell’entità Lezione 14( 03/04) Protocolli Applicativi

74 Formato generale di una risposta
Versione SP Codice di stato Frase CR LF Linea di stato campo nome intestazione : valore Linea di intestazione . Corpo dell’entità Lezione 14( 03/04) Protocolli Applicativi

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

76 Lezione 14( 03/04) Protocolli Applicativi
Linea di intestazione CAMPO VALORE Date Data in cui la risposta è stata creata Server Tipo di software che ha creato la risposta Last-Modified Ultima modifica dell’oggetto trasferito Connection Tipo di connessione Content-Lenght Numero di byte dell’oggetto da spedire Content-Type Tipo MIME dell’oggetto Content-Encode Ulteriore codifica Lezione 14( 03/04) Protocolli Applicativi

77 Esempio di una risposta
HTTP/1.1 SP 200 OK CR LF Linea di stato Connection : Close Linea di intestazione Date Thu, 06 Aug :00:15 GMT Server Apache/1.3.0 (UNIX) Last-Modified Mon, 22 jun :23:24 GMT Content-Lenght 6821 Content-Type Text/html OGGETTO 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 dell’host associato all’identificazione 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 Lezione 14( 03/04) Protocolli Applicativi

79 ARCHITETTURA dei BROWSER
driver Interprete facoltativo Interprete HTML Output inviato allo schermo Unità di controllo Input dal mouse o dalla tasiera Client facoltativo Client HTTP Scheda di rete Comunicazione con il server WEB Richiesta di riferimento hyperlink Esecuzione di un interprete per visualizzare i contenuti Esecuzione di un client per acquisire il documento 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 dell’oggetto per determinare quale riferimento eseguire Client facoltativi Client per altri servizi da effettuare in maniera trasparente per l’utente (ftp, , ecc..) Cache Migliora la rapidità di accesso ai documenti 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 l’oggetto 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 DELL’ENTITA’ VUOTO 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 l’oggetto cercato è nel proxy, questo inoltra l’oggetto nel messaggio di risposta Se l’oggetto cercato non c’e’, il proxy apre una connessione TCP con il destinatario originale ed invia una richiesta HTTP dell’oggetto specificato Quando il proxy riceve l’oggetto ne archivia una copia nella memoria locale ed invia l’oggetto all’interno di un messaggio di risposta HTTP 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 Lezione 14( 03/04) Protocolli Applicativi

84 Lezione 14( 03/04) Protocolli Applicativi
Tipi di documenti WEB Documenti statici Documenti Dinamici Il server deve eseguire una applicazione (SCRIPT) in presenza di una richiesta Il server riceve l’output dall’applicazione 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 l’applicazione localmente ed il risultato rappresenta il documento attivo Hanno la capacità di aggiornarsi continuamente Lezione 14( 03/04) Protocolli Applicativi

85 Lezione 14( 03/04) Protocolli Applicativi
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 dall’autore al momento della creazione Rimangono invariati fino a che non sono modificati dall’autore Vantaggi Facili da creare Sono visualizzati velocemente dal browser Svantaggi Interazione limitata Tendono a invecchiare per mancata manutenzione Lezione 14( 03/04) Protocolli Applicativi

86 Lezione 14( 03/04) Protocolli Applicativi
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 l’altra Il server contiene un programma (compilato o interpretato) il cui output e’ restituito al browser il browser mostra l’output come una pagina HTML Vantaggi Generano il contenuto dipendentemente dall’input dell’utente Svantaggi Necessita’ di programmare per la creazione automatica del contenuto (qualsiasi linguaggio interpretato o eseguito dal server) Non esistono standard L’input può essere validato solo dal server Lezione 14( 03/04) Protocolli Applicativi

87 Lezione 14( 03/04) Protocolli Applicativi
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 dell’applicazione seguita da una serie di parametri; il server Web riconosce che la richiesta deve essere indirizzata all’applicazione specificata e ne attiva un’istanza passandole opportunamente i parametri l’applicazione effettua l’elaborazione 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 dall’applicazione CGI e la trasforma in una risposta HTTP Lezione 14( 03/04) Protocolli Applicativi

88 Lezione 14( 03/04) Protocolli Applicativi
Applicazioni CGI L’applicazione 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 Lezione 14( 03/04) Protocolli Applicativi

89 Lezione 14( 03/04) Protocolli Applicativi
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) * Lezione 14( 03/04) Protocolli Applicativi

90 Limiti della programmazione CGI
Carico di elaborazione per il server L’interfaccia non supporta un insieme esaustivo di tipi di dati L’interfaccia non supporta controllo dei dati imessi dalla parte del client L’utente deve premere <submit> 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 Lezione 14( 03/04) Protocolli Applicativi

91 Lezione 14( 03/04) Protocolli Applicativi
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 l’utente 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 Lezione 14( 03/04) Protocolli Applicativi

92 Lezione 14( 03/04) Protocolli Applicativi
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 l’esecuzione di un programma Java Java API: librerie di classi riusabili isolano le dipendenze dal sistema Lezione 14( 03/04) Protocolli Applicativi

93 Lezione 14( 03/04) Protocolli Applicativi
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) Lezione 14( 03/04) Protocolli Applicativi

94 Lezione 14( 03/04) Protocolli Applicativi
Programmi JAVA Interpretazione dei bytecode ed esecuzione Standalone Eseguito direttamente dall’utente 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 <APPLET CODE=“HelloWorld.class” WIDTH=150 HEIGHT=25> </APPLET> L’esecuzione della pagina HTML causa il download dell’applet dal server al client e l’esecuzione nel client Servlet Eseguito da un web server che contiene la Java VM Simile a un programma CGI <FORM ACTION=“/servlet/servletname” METHOD=POST> Lezione 14( 03/04) Protocolli Applicativi

95 Lezione 14( 03/04) Protocolli Applicativi
Bibliografia Lezione 14 Lezione 14( 03/04) Protocolli Applicativi


Scaricare ppt "Corso di laurea in INFORMATICA"

Presentazioni simili


Annunci Google