Livello Applicativo. Application Layer

Documenti analoghi
INFORMATICA DISTRIBUITA. lez 5 World Wide Web (cont)

Web e HTTP. path name. host name Realizzato da Roberto Savino.

Applicazioni e protocolli a livello applicazione

TECN.PROG.SIST.INF. Livello APPLICAZIONE - TELNET. Roberta Gerboni

Reti di Calcolatori. Master "Bio Info" Reti e Basi di Dati Lezione 2

Livello applicativo. Obiettivi specifici: ! Protocolli specifici: " http " ftp " smtp " pop " dns " Programmazione di applicazioni

Livello applicativo. Obiettivi specifici: Protocolli specifici: Obiettivi generali:

Servizi di rete e web. Prof. Maurizio Naldi A.A. 2015/16

Programmazione in Rete

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione

Reti di Telecomunicazione Lezione 6

Capitolo 2 - parte 2. Corso Reti ed Applicazioni Mauro Campanella

Stack protocolli TCP/IP

Protocolli di applicazione

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

url uniform resource locator

Il Livello Applicazione

Protocolli per il Web. Impianti Informatici. Protocolli applicativi

Application Layer FTP, SMTP, POP3, IMAP

Application Layer FTP, SMTP, POP3, IMAP. Ricapitolando. FTP: File Transfer Protocol [RFC 959] porta 80

Esempi di applicazioni internet. WEB Trasferimento File Posta Elettronica Sistema dei nomi di dominio (DNS)

Che tipo di transport service è necessario per una applicazione? Protocolli application-layer (cont). Applicazioni e protocolli application-layer

OSOR. Applicazioni di Rete

Università degli Studi di Bergamo

Università degli Studi di Bergamo

Architetture Web Protocolli di Comunicazione

Sicurezza delle applicazioni web: protocollo HTTP

Applicazioni di rete. Applicazioni di rete

Le Reti Informatiche

Mariarosaria Napolitano. Architettura TCP/IP. Corso di: Laboratorio di tecnologie informatiche e telematiche

Reti di Calcolatori. Seconda lezione. Realizzato da Roberto Savino: 1

Processi dell applicazione, socket e il sottostante protocollo di trasporto. Protocolli application-layer (cont).

INFORMATICA DISTRIBUITA. prof. Carlo Bellettini. lez 9 Distribuzione dei contenuti

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

Web (1) Internet. Elementi di Sicurezza e Privatezza Lezione 9 Web Security (1) Chiara Braghin. chiara.braghin@unimi.it! 20/11/12. browser.

Reti di calcolatori e Internet (Parte II) Sistemi e Tecnologie Informatiche

Lucidi a cura di Andrea Colombari, Carlo Drioli e Barbara Oliboni. Lezione 4

. SMTP, POP, IMAP. mail server. smtp [RFC 821] Tre componenti: user agent mail server simple mail transfer protocol: smtp

Parte II: Reti di calcolatori Lezione 9

Reti: cenni storici. Who s who

INFORMATICA DISTRIBUITA. lez 6 World Wide Web (cont)

SMSPortal. SMS-Gateway interfaccia SMTP. Versione , 2005, 2006 SMSPortal. Digitel Mobile Srl Via Raffaello, Pescara (Italy)

Informatica Distribuita PAS

Dal protocollo IP ai livelli superiori

Il Protocollo HTTP e la programmazione di estensioni Web

Architetture Applicative Il Web

Telematica II 7. Introduzione ai protocolli applicativi

Protocolli strato applicazione in Internet

Esercitazione. Formato di compitini e compiti: domande ed esercizi "closed book" G. Ferrari - Reti di calcolatori.

Tecnologie per la Comunicazione Aziendale

PROTOCOLLI APPLICATIVI PER INTERNET

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Assignment (1) - Varie

Elementi di Sicurezza e Privatezza Laboratorio 6 - Vulnerabilità di applicazioni Web (1) Chiara Braghin chiara.braghin@unimi.it!

Protocollo HTTP. Alessandro Sorato

Protocolli Applicativi

Il protocollo HTTP e HTTPS

Reti di Calcolatori:

Sicurezza delle applicazioni web: protocollo HTTP

Web e Server-side Computing: Richiami sulla tecnologia Web e FORM HTML

World Wide Web. Web e Server-side Computing: Richiami sulla tecnologia Web e FORM HTML. Il Successo del Web. Protocolli di accesso

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

Reti di Telecomunicazione Lezione 7

Livello applicazione: Sessioni HTTP, FTP, Posta Elettronica

Infrastrutture e Protocolli per Internet Laboratorio 1

Introduzione. Livello applicativo Principi delle applicazioni di rete. Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio 2-1

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

Protocolli applicativi basati su TCP/IP

CONNESSIONE DI UN PC ALLA RETE INTERNET

2Dove vogliamo arrivare:

5 - Protocolli Applicativi

Telematica II 13. Posta Elettronica

Indice. Prefazione XIII

Le Reti Informatiche

Reti di Calcolatori. Internet. Un sistema di comunicazione che offre un servizio universale:

Introduzione alle applicazioni di rete

Metodologie Informatiche Applicate al Turismo

appunti delle lezioni Architetture client/server: applicazioni client

Internet e Tecnologia Web

Capitolo 1 - parte 1. Corso Reti ed Applicazioni Mauro Campanella

ICMP OSI. Internet Protocol Suite. Telnet FTP SMTP SNMP TCP e UDP NFS. Application XDR. Presentation. Session RPC. Transport.

Infrastrutture e Protocolli per Internet Laboratorio 1

Reti di Telecomunicazione Lezione 8

Livello Applicazione. Davide Quaglia. Motivazione

Modulo 1: Posta elettronica

Protocolli applicativi: FTP

Applicazioni Web, HTTP e REST. Matteo Vaccari Milano XP User Group, 3 ottobre 2007

Programmazione in Rete

Telematica II 12. Esercitazione/Laboratorio 4

Reti locati e reti globali. Tecnologie: Reti e Protocolli. Topologia reti. Server e client di rete. Server hardware e server software.

Seminari Eucip, Esercizio e Supporto di Sistemi Informativi

Posta Elettronica e Web

Reti di Calcolatori ed Internet. Reti di Calcolatori ed Internet. Reti di Calcolatori. Reti di Calcolatori. Architettura dei Servizi di Rete

PRESENTAZIONE DI UN SMS AL GATEWAY

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

SMS-Bulk Gateway interfaccia HTTP

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Metodologie Informatiche Applicate al Turismo

Flavio De Paoli ITIS Lab

Transcript:

Livello Applicativo Application Layer Cosa vediamo Parte 1 Principi generali Parte 2 Il Web e il protocollo HTTP 1

Parte 1 Principi generali Scenario di riferimento application transport network data link physical application transport network data link physical application transport network data link physical 2

Principi generali: Processi Processo: programma che gira su un host I processi sullo stesso host comunicano usando gli strumenti di comunicazione messi a disposizione dal S.O. (interprocess communication) I processi che sono su host diversi comunicano usando un protocollo del livello applicativo Principi generali: User agent User agent: interfaccia tra l utente e la rete Implementa i protocolli del livello applicativo Web: browser E-mail: mail reader Streaming audio/video: media player 3

Principi generali: Applicazione Costituita da processi distribuiti e comunicanti (e-mail, Web, P2P file sharing, instant messaging, ) I processi girano sugli endsystem (host) Si scambiano dei messaggi per implementare l applicazione stessa Principi generali: Protocollo applicativo È una parte di una applicazione e definisce I tipi di messaggi che vengono inviati La sintassi dei messaggi: che campi ci sono e come si distinguono nel messaggio La semantica dei messaggi:il significato delle informazioni contenute nei campi Le regole per sapere come e quando i processi inviano richeste e spediscono risposte 4

Principi generali: Client / Server Client Contatta il server ( parla per primo ) application transport network data link physical request Richiede un servizio application transport network data link physical Principi generali: Client / Server Server Fornisce il servizio richiesto al client application transport network data link physical request Ad es. un Web server spedisce le pagine web richieste, un mail server inoltra le e-mail response application transport network data link physical 5

Principi generali: Come comunicano i processi? host or server host or server process controlled by application developer process socket TCP with buffers, variables Internet socket TCP with buffers, variables controlled by O.S. Principi generali: Indirizzamento I processi che ricevono i messaggi devono avere un indirizzo univoco Ogni host ha un indirizzo univoco a 32-bit: l indirizzo IP Domanda: l indirizzo IP dell host è sufficiente per identificare un processo che gira sull host? Risposta: no, ci possono essere più processi attivi sullo stesso host 6

Principi generali: Indirizzamento L indirizzo univoco di un processo deve includere sia l indirizzo IP che il numero di porta associato al processo sull host Esempi HTTP server: 80 Mail server: 25 Rivedremo questi concetti più avanti Principi generali: Servizi necessari per un applicazione Perdita di dati (Data loss) Alcune applicazioni (es. audio) possono tollerare delle perdite di dati, altre (es. file transfer, telnet) richiedono un servizio affidabile al 100% Dipendenza dal tempo (Time sensitive) Alcune applicazioni (es. Internet telephony, interactive games) non possono funzionare in presenza di ritardi di trasmissione 7

Principi generali: Servizi necessari per un applicazione Banda (Bandwidth) Alcune applicazioni (es. multimedia) richiedono una quantità minima di banda per essere efficaci Altre applicazioni ( elastic ) possono funzionare in presenza di qualunque banda Principi generali: Servizi necessari per un applicazione Application Data loss Bandwidth Time Sensitive file transfer no loss elastic no e-mail no loss elastic no Web documents no loss elastic no real-time audio/video stored audio/video loss-tolerant loss-tolerant audio: 5kbps-1Mbps video:10kbps-5mbps same as above yes, 100 s msec yes, few secs interactive games loss-tolerant few kbps up yes, 100 s msec instant messaging no loss elastic yes and no 8

Principi generali: Trasporto A seconda dell applicazione ci si deve affidare ad un servizio di trasporto orientato alla connessione come quello offerto da TCP oppure può bastare un servizio di tipo datagram come quello fornito da UDP Rivedremo questi concetti più avanti Principi generali: Trasporto Application e-mail remote terminal access Web file transfer streaming multimedia Internet telephony Application layer protocol SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] proprietary (e.g. RealNetworks) proprietary (e.g., Dialpad) Underlying transport protocol TCP TCP TCP TCP TCP or UDP typically UDP 9

Parte 2 Il Web e il protocollo HTTP Web Una pagina Web è formata da oggetti Gli oggetti possono essere file HTML, immagini (JPEG,GIF,PNG), applet Java, file audio, Ogni oggetto è identificato da un URL 10

HTTP HTTP request PC running Explorer HTTP response HTTP request HTTP response Server running Apache Web server Mac running Navigator HTTP HTTP si poggia su TCP Il client HTTP (il browser) inizia una connessione TCP sulla porta 80 del server Il server HTTP (Web server) accetta la connessione TCP del client Client e server si scambiano messaggi HTTP (attraverso i socket) Si chiude la connessione TCP 11

HTTP HTTP è stateless : il server non mantiene alcuna informazione sulle richieste dei vari client I protocolli che mantengono lo stato sono complessi. Si deve mantenere traccia della storia passata perchè, se il server o il client si guastano, la loro visione dello stato può diventare inconsistente e deve essere ripristinata Connessioni HTTP HTTP 1.0 [RFC 1945] Su ogni connessione TCP si invia al più un oggetto Connessione NON persistente HTTP 1.1 [RFC 2616] Più oggetti possono essere inviati sulla stessa connessione TCP Permette una connessione persistente 12

HTTP non persistente Supponiamo che l utente digiti l indirizzo www.nomedip.nomeuni.it/index.html e che il file contenga 10 immagini 1. Il client HTTP inizia una connessione TCP sulla porta 80 del server (il processo server) all indirizzo www.nomedip.nomeuni.it 2. Il server HTTP, in attesa di connessioni TCP sulla porta 80, accetta la connessione e manda una notifica al client HTTP non persistente 3. Il client HTTP manda una richiesta HTTP (request message) che contiene un URL Il messaggio indica che il client richiede la pagina index.html 4. Il server HTTP riceve la richiesta, forma un messaggio di risposta (response message) che contiene l oggetto richiesto, e lo inoltra al client 13

HTTP non persistente 6. Il client HTTP riceve il messaggio di risposta che contiene il file index.html. Comincia a visualizzarlo e durante la parsificazione si accorge che ci sono 10 riferimenti ad oggetti JPEG 5.Il server HTTP chiede la chiusura della connessione TCP 6. I passi 1-6 vengono ripetuti per ogni oggetto JPEG HTTP non persistente initiate TCP connection RTT request file RTT file received time to transmit file time time RTT: tempo richiesto per spedire un pacchetto dal client al server e ritorno 14

HTTP non persistente Richiede 2 RTT per trasferire ogni oggetto (più il tempo per il trasferimento effettivo del file) Il S.O. deve allocare le risorse per ogni connessione TCP I browser spesso possono aprire più connessioni TCP in parallelo per caricare gli oggetti inclusi in un file HTML HTTP persistente Il server non chiude la connessione TCP dopo aver inviato una risposta I messaggi HTTP successivi (tra lo stesso client e lo stesso server) vengono inoltrati sulla connessione aperta Il tempo di trasmissione diminuisce 15

HTTP persistente Senza pipelining Il client invia una nuova richiesta solo quando ha ricevuto la risposta precedente Tempo richiesto: un RTT per ogni oggetto Con pipelining Default nella versione HTTP/1.1 Il client invia una nuova richesta non appena incontra un riferimento ad un oggetto durante la parsificazione di un file HTML HTTP persistente 16

HTTP request: formato header body HTTP request: formato request line header lines GET /somedir/page.html HTTP/1.1 Host: www.someuniv.it User-agent: Mozilla/4.0 Connection: close Accept-language:fr carriage return, line feed: indica la fine dell header body, facoltativo nel caso di request 17

Metodi HTTP/1.0 GET POST HEAD Restituisce solo l header HTTP/1.1 GET, POST, HEAD PUT File upload sul server DELETE Per cancellare i file sul server HTTP response: formato status line (protocol - status code - status phrase) header header body HTTP/1.1 200 OK Connection: close Date: Thu, 06 Aug 2002 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 2002 Content-Length: 6821 Content-Type: text/html body (es. File HTML) data data data data data... 18

HTTP response: status code 200 OK 301 Moved Permanently 400 Bad Request 404 Not Found 505 HTTP Version Not Supported HTTP response?? telnet www.disi.unige.it 80 GET /person/ribaudom/applrete/index.html HTTP/1.1 Host: www.disi.unige.it Dopo aver digitato 2 volte il tasto Enter (Invio) si apre una connessione TCP alla porta 80 del server www.disi.unige.it Poi viene inviato il comando GET e il server risponde 19

HTTP response!! HTTP/1.1 404 404Not Found Found Date: Date: Mon, Mon, 07 07Apr Apr2003 200314:58:05 GMT GMT Server: Server: Apache/1.3.26 Connection: close close Content-Type: text/html; charset=iso-8859-1 header <!DOCTYPE HTML HTML PUBLIC "-//IETF//DTD HTML HTML 2.0//EN"> body <HTML><HEAD> <TITLE>404 Not Not Found</TITLE> </HEAD><BODY> <H1>Not Found</H1> The Therequested URL URL /person/ribaudom/applrete/index.html was was not not found found on onthis thisserver.<p> <HR> <HR> <ADDRESS>Apache/1.3.26 Ben-SSL/1.48 Server Server at atanakin.disi.unige.it Port Port 80</ADDRESS> </BODY></HTML> Connection closed closed by by foreign foreign host. host. pianeta pianeta 31 31 ;-) ;-) HTTP response!! GET /person/ribaudom/ HTTP1.1.. HTTP/1.1 HTTP/1.1 400 400 Bad BadRequest Date: Date: Mon, Mon, 07 07Apr Apr2003 200314:49:24 GMT GMT Server: Server: Apache/1.3.26 Apache/1.3.26 Connection: Connection: close close Content-Type: Content-Type: text/html; text/html; charset=iso-8859-1 charset=iso-8859-1 <!DOCTYPE <!DOCTYPE HTML HTML PUBLIC PUBLIC "-//IETF//DTD "-//IETF//DTD HTML HTML 2.0//EN"> 2.0//EN"> <HTML><HEAD> <HTML><HEAD> <TITLE>400 <TITLE>400 Bad BadRequest</TITLE> </HEAD><BODY> </HEAD><BODY> <H1>Bad <H1>BadRequest</H1> Your Yourbrowser browsersent senta request request that that this thisserver servercould not not understand.<p> understand.<p> The Therequest requestline linecontained invalid invalid characters characters following followingthe theprotocol protocolstring.<p> <P> <P> <HR> <HR> <ADDRESS>Apache/1.3.26 Ben-SSL/1.48 Ben-SSL/1.48 Server Server at atanakin.disi.unige.it anakin.disi.unige.it Port Port80</ADDRESS> </BODY></HTML> </BODY></HTML> Connection Connectionclosed closed by by foreign foreign host. host. pianeta pianeta 26 26 ;-) ;-) 20

HTTP response!! GET /person/ribaudom/ HTTP/1.1.. HTTP/1.1 400 400 Bad BadRequest Date: Date: Mon, Mon, 07 07Apr Apr2003 200314:55:48 GMT GMT Server: Server: Apache/1.3.26 Connection: close close Content-Type: text/html; charset=iso-8859-1 <!DOCTYPE <!DOCTYPE HTML HTML PUBLIC PUBLIC "-//IETF//DTD "-//IETF//DTD HTML HTML 2.0//EN"> 2.0//EN"> <HTML><HEAD> <HTML><HEAD> <TITLE>400 <TITLE>400 Bad Bad Request</TITLE> Request</TITLE> </HEAD><BODY> </HEAD><BODY> <H1>Bad <H1>Bad Request</H1> Request</H1> Your Your browser browser sent sent a a request request that that this this server server could could not not understand.<p> understand.<p> Invalid Invalid URI URI in in request request GET GET person/ribaudom/ person/ribaudom/ HTTP/1.0<P> HTTP/1.0<P> <HR> <HR> <ADDRESS>Apache/1.3.26 <ADDRESS>Apache/1.3.26 Ben-SSL/1.48 Ben-SSL/1.48 Server Server at at anakin.disi.unige.it anakin.disi.unige.it Port Port 80</ADDRESS> 80</ADDRESS> </BODY></HTML> </BODY></HTML> Connection Connection closed closed by by foreign foreign host. host. pianeta pianeta 30 30 ;-) ;-) HTTP response!! GET /person/ribaudom/index.html HTTP/1.1.. HTTP/1.1 200 200 OK OK Date: Mon, 07 07Apr Apr2003 14:53:55 GMT Server: Apache/1.3.26 Connection: close Content-Type: text/html; charset=iso-8859-1 <HTML> <HTML> <HEAD> <HEAD> <TITLE> <TITLE> My Myhome page page -- DISI DISI </TITLE> </TITLE> 21

Accesso con autorizzazione Spesso quando ci si collega ad un sito web vengono richieste login e password Questo accesso si ottiene mediante speciali header HTTP Accesso con autorizzazione telnet www.someuni.it 80 80 Trying 130.xxx.yyy.zzz... Connected to towww.somehost.it.. Escape character is is '^]'. '^]'. HEAD /intranet/index.html HTTP/1.1 Host: www.somehost.it request HTTP/1.1 401 401Authorization Required response Date: Tue, Tue, 08 08Apr Apr2003 08:38:48 GMT Server: Apache/1.3.26 Ben-SSL/1.48 (Unix) Debian GNU/Linux PHP/4.1.2 WWW-Authenticate: Basic realm="a Password is is Required to to access these informations" Content-Type: text/html; charset=iso-8859-1 22

Accesso con autorizzazione telnet www.somehost.it 80 80 Trying 130.xxx.yyy.zzz... Connected to towww.somehost.it.. Escape character is is '^]'. '^]'. request HEAD /intranet/index.html HTTP/1.1 Host: www.somehost.it Authorization: Basic VoZcXdEX5s5cVt$= codifica di login e password Dopo aver ricevuto il primo oggetto il client continua ad inviare login e password al server. Questi valori sono nella cache del browser e quindi non viene richiesta ogni volta l autenticazione Conditional GET Il browser salva gli oggetti che visualizza nella sua memoria cache Quando un utente richiede un oggetto che è già nella cache, questo viene visualizzato in modo immediato (es. pulsante Back) Problema: cosa succede se la copia originale sul server è stata modificata? 23

Conditional GET Il client, ogni volta che memorizza un oggetto nelle cache, tiene traccia anche della data dell ultima modifica Last-Modified: <data> Ad ogni richiesta successiva il client può specificare la data della copia in cache nella richiesta HTTP GET /dir/nomefile.gif HTTP/1.1 Host: www.somehost.it If-modified-since: <data> Conditional GET Il server invia l oggetto richiesto solo se è diverso da quello che è già memorizzato nella cache del browser Altrimenti restituisce HTTP/1.1 304 Not Modified Date: Tue, 08 Apr 2003 08:38:48 GMT Server: Apache/1.3.26 24

Conditional GET client server HTTP request If-modified-since: <date> object not modified HTTP response HTTP/1.0 304 Not Modified HTTP request If-modified-since: <date> object modified HTTP response HTTP/1.0 200 OK <data> Proxy server: web cache Permette di migliorare le prestazioni dell accesso ad Internet soddisfacendo, quando possibile, le richieste dei vari client al posto dei server remoti 25

Proxy server: IP masking Inoltre, permette di rendere pubblico all esterno un solo indirizzo IP, quello del proxy Proxy server: access control Infine, può anche essere usato per controllare l accesso alle risorse 26