Programmazione in Rete
|
|
|
- Gioacchino Pellegrino
- 9 anni fa
- Просмотров:
Транскрипт
1 Programmazione in Rete a.a. 2005/ dott.ssa Francesca A. Lisi Orario di ricevimento: mercoledì ore 10-12
2 Sommario della lezione di oggi: Lo strato di applicazione (2/5) Principi dei protocolli dello strato di applicazione Trasferimento di file & il protocollo FTP World Wide Web & HTTP Posta elettronica & SMTP DNS: il servizio directory di Internet Condivisione di file Programmazione dei socket dott.ssa F. A. Lisi - Programmazione in Rete Livello di applicazione (2/5) 2
3 Il World Wide Web: un po di gergo tecnico Pagina Web: consiste di oggetti indirizzatadaunaurl (Uniform Resource Locator) La maggior parte delle pagine Web consiste di: pagina base in HTML, e diversi oggetti referenziati. URL ha due componenti: host name e path name L agente utente per il WWW è chiamato browser: MS Internet Explorer Netscape Communicator Server per il WWW è detto Web server: Apache (public domain) MS Internet Information Server dott.ssa F. A. Lisi - Programmazione in Rete Livello di applicazione (2/5) 3
4 Il World Wide Web: il protocollo HTTP HTTP: hypertext transfer protocol protocollo dello strato di applicazione per il WWW modello client/server client: browser che richiede, riceve, visualizza oggetti Web server: Web server invia oggetti in risposta alle richieste HTTP/1.0: RFC 1945 HTTP/1.1: RFC 2068 PC running Explorer Mac running Navigator http request http response http request http response Server running NCSA Web server dott.ssa F. A. Lisi - Programmazione in Rete Livello di applicazione (2/5) 4
5 Il World Wide Web: il protocollo HTTP (cont.) Servizio di trasporto TCP: il client avvia una connessione TCP (crea un socket) col server, porta 80 il server accetta la connessione TCP dal client messaggi HTTP (messaggi di protocollo dello strato di applicazione) scambiati fra browser (HTTP client) e Web server (HTTP server) chiusura della connessione TCP HTTP è stateless il server non conserva alcuna info sulle passate richieste del client a latere I protocolli che conservano lo stato sono complessi! La storia passata (stato) deve essere conservata se server/client crolla, le loro viste di stato potrebbero essere inconsistenti, vanno quindi riconciliate dott.ssa F. A. Lisi - Programmazione in Rete Livello di applicazione (2/5) 5
6 tempo Esempio di sessione HTTP Supponi che un utente visiti la pagina con URL 1a. Il client http inizia una connessione TCP al server HTTP (processo) del terminale La porta 80 è di default per il server HTTP. 2. Il client HTTP invia messaggio di richiesta http (contenente la URL) nel socket della connessione TCP (contiene testo, riferimenti a 10 immagini jpeg) 1b. Il server HTTP del terminale in attesa di connessione TCP alla porta 80, accetta la connessione, inviandone notifica al client 3. Il server HTTP riceve il messaggio di richiesta, forma il messaggio di risposta contenente l oggetto richiesto (somedepartment/home.index), e lo invia nel socket dott.ssa F. A. Lisi - Programmazione in Rete Livello di applicazione (2/5) 6
7 Esempio di sessione HTTP (cont.) 5. Il client HTTP riceve il messaggio di risposta contenente il file HTML che viene visualizzato. Analizzando il file HTML, trova 10 oggetti jpeg referenziati 4. Il server HTTP chiude la connessione TCP. tempo 6. I passi 1-5 ripetuti per ciascuno dei 10 oggetti.jpeg dott.ssa F. A. Lisi - Programmazione in Rete Livello di applicazione (2/5) 7
8 Connessioni non-persistenti e persistenti Non-persistenti HTTP/1.0 il server parserizza la richiesta, risponde, e chiude la connessione TCP 2 RTTs per prelevare ciascun oggetto Ogni trasferimento di oggetto soffre di un avvio lento Ma la maggior parte dei browser 1.0 usano connessioni TCP parallele. Persistenti default per HTTP/1.1 durante la stessa connessione TCP: il server parserizza la richiesta, risponde, parserizza una nuova richiesta,.. Il client invia richieste per tutti gli oggetti referenziati non appena riceve l HTML di base. Meno RTTs ed avvio meno lento. dott.ssa F. A. Lisi - Programmazione in Rete Livello di applicazione (2/5) 8
9 Formato di un messaggio HTTP: richiesta Due tipi di messaggi HTTP: richiesta, risposta messaggio di richiesta HTTP: ASCII (human-readable format) linea di richiesta (comandi GET, POST, HEAD) linee di intestazione GET /somedir/page.html HTTP/1.0 User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:fr Ritorno a capo, line feed indica la fine del messaggio (extra carriage return, line feed) dott.ssa F. A. Lisi - Programmazione in Rete Livello di applicazione (2/5) 9
10 Formato di un messaggio HTTP: richiesta (cont.) dott.ssa F. A. Lisi - Programmazione in Rete Livello di applicazione (2/5) 10
11 Formato di un messaggio HTTP: risposta Linea di status (protocollo, codice di stato, frase di stato) linee di intestazione HTTP/ OK Date: Thu, 06 Aug :00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun Content-Length: 6821 Content-Type: text/html dati, p.e., file HTML richiesto dati dati dati dati dati... dott.ssa F. A. Lisi - Programmazione in Rete Livello di applicazione (2/5) 11
12 Formato di un messaggio HTTP: risposta (cont.) Esempi di codice di stato: 200 OK richiesta di successo, oggetto richiesto più tardi in questo messaggio 301 Moved Permanently oggetto richiesto spostato, nuova locazione specificata più tardi in questo messaggio (Location:) 400 Bad Request messaggio di richiesta non compreso dal server 404 Not Found documento richiesto non trovato su questo server 505 HTTP Version Not Supported dott.ssa F. A. Lisi - Programmazione in Rete Livello di applicazione (2/5) 12
13 Vuoi provare HTTP (lato client)? 1. Telnet al tuo sito Web preferito: telnet 80 Apri una connessione TCP alla porta 80 (porta di default per il server HTTP) del terminale Qualsiasi cosa digitata viene inviata alla porta 80 di 2. Formula una richiesta HTTP di tipo GET: GET /~ross/index.html HTTP/1.0 Digitando questo (batti due volte il ritorno a capo), tu invii questa richiesta GET minimale (ma completa) al server HTTP 3. Osserva il messaggio di risposta inviato dal server HTTP! dott.ssa F. A. Lisi - Programmazione in Rete Livello di applicazione (2/5) 13
14 Interazione user-server: autenticazione Obiettivo: controllare l accesso ai documenti residenti sul server il client deve presentare autorizzazione in ogni richiesta authorization: riga di intestazione nella richiesta con user name e password se nessuna autorizzazione presentata, il server rifiuta accesso, invia risposta con WWW authenticate: come riga di intestazione Il browser pone nome & pwd nella cache così che l utente non deve reinserirli ripetutamente. client usual http request msg 401: authorization req. WWW authenticate: usual http request msg + Authorization:line usual http response msg usual http request msg + Authorization:line usual http response msg server tempo dott.ssa F. A. Lisi - Programmazione in Rete Livello di applicazione (2/5) 14
15 Interazione user-server: cookie Il server invia cookie al client client nel msg di risposta Set-cookie: il client presenta il cookie nelle successive richieste cookie: il server confronta il cookie presentato con info memorizzata nel server autenticazione ricordare le preferenze dell utente, scelte precedenti usual http request msg usual http response + Set-cookie: # usual http request msg cookie: # usual http response msg usual http request msg cookie: # usual http response msg server cookiespecific action cookiespecific action dott.ssa F. A. Lisi - Programmazione in Rete Livello di applicazione (2/5) 15
16 Interazione user-server: GET condizionato Obiettivo: non inviare client oggetti se il client ha una versione memorizzata aggiornata (in cache) client: specificare la data della copia in cache nella richiesta HTTP If-modified-since: <date> server: la risposta non contiene alcun oggetto se la copia in cache è aggiornata: HTTP/ Not Modified http request msg If-modified-since: <date> http response HTTP/ Not Modified http request msg If-modified-since: <date> http response HTTP/ OK <data> server oggetto non modificato oggetto modificato dott.ssa F. A. Lisi - Programmazione in Rete Livello di applicazione (2/5) 16
17 Le cache del Web (proxy server) Obiettivo: soddisfare la richiesta del client senza coinvolgere il server di origine l utente imposta il browser: accessi Web via web cache il client invia tutte le richieste HTTP alla cache del web se essa contiene l oggetto, lo invia immediatamente nella risposta HTTP altrimenti richiede l oggetto dal server di origine, quindi lo acclude alla risposta HTTP client client http request http response http request http response Proxy server http request http response http request http response origin server origin server dott.ssa F. A. Lisi - Programmazione in Rete Livello di applicazione (2/5) 17
18 Perché il Web Caching? Assumiamo che: la cache è vicina al client (p.e., nella stessa rete) minor tempo di risposta: cache + vicina al client decrementa il traffico verso server distanti il collegamento in uscita alla rete di ISP aziendali/locali è spesso un collo di bottiglia institutional network public Internet 1.5 Mbps access link 10 Mbps LAN Cache aziendale origin servers dott.ssa F. A. Lisi - Programmazione in Rete Livello di applicazione (2/5) 18
19 Sommario della prossima lezione: Lo strato di applicazione (3/5) Principi dei protocolli dello strato di applicazione Trasferimento di file & il protocollo FTP World Wide Web & HTTP Posta elettronica & SMTP DNS: il servizio directory di Internet Condivisione di file Programmazione dei socket dott.ssa F. A. Lisi - Programmazione in Rete Livello di applicazione (2/5) 19
Web e HTTP. path name. host name Realizzato da Roberto Savino. www.someschool.edu/somedept/pic.gif
Web e HTTP Terminologia Una pagina web consiste di oggetti Un oggetto può essere un file HTML, una immagine JPG, ecc. Una pagina web consiste di un file HTML base che fa riferimento a diversi oggetti al
Il Protocollo HTTP e il WWW
Web Il Protocollo HTTP e il WWW Gianluigi Ferrari Diparnto di Informatica Università di Pisa Pagina Web: Insieme di objects Indirizzo tramite URL. URL: Unifor Resource Locator è l indirizzo di rete di
Applicazioni e protocolli a livello applicazione
Applicazioni e protocolli a livello applicazione Applicazione: processi distribuiti comunicanti vengono eseguiti sugli host di rete come processi utente scambio di messaggi per implementare l applicazione
Livello applicativo. Obiettivi specifici: Protocolli specifici: Obiettivi generali:
Livello applicativo Obiettivi generali: Aspetti concettuali/ implementativi dei protocolli applicativi Paradigma client server Modelli dei servizi Obiettivi specifici: Protocolli specifici: http ftp smtp
Livello applicazione: protocollo HTTP
Livello applicazione: protocollo HTTP Reti di Elaboratori Corso di Laurea in Informatica Università degli Studi di Roma La Sapienza Prof.ssa Gaia Maselli Parte di queste slide sono state prese dal materiale
Capitolo 2 - parte 2. Corso Reti ed Applicazioni Mauro Campanella
Capitolo 2 - parte 2 Corso Reti ed Applicazioni Mauro Campanella La nascita del World Wide Web L idea fu nel 1989 di Tim Berners Lee, fisico del CERN di Ginevra. Vi era la necessità di far collaborare
Il Livello Applicazione
Il Livello Applicazione Principali Obiettivi: Aspetti concettuali implementativi dei protocolli di rete del livello applicazione paradigma client server Modelli di servizio Impareremo a conoscere i protocolli
Esempi di applicazioni internet. WEB Trasferimento File Posta Elettronica Sistema dei nomi di dominio (DNS)
Esempi di applicazioni internet WEB Trasferimento File Posta Elettronica Sistema dei nomi di dominio (DNS) 17 Il Web: terminologia Pagina Web: consiste di oggetti indirizzati da un URL (Uniform Resource
Casi pratici esempi. http smtp. Copyright Luciano Bononi 2004 (some figure credits to Kurose, Ross, Internet e reti di calcolatori)
Livello Applicazione obiettivo: Aspetti implementativi e di uso dei protocolli di livello applicazione paradigma client Modelli di servizio Vediamo esempi di come funzionano le applicazioni su rete Casi
OSOR. Applicazioni di Rete
OSOR Applicazioni di Rete 1 Client-Server in Sistemi Distribuiti Host A Host B Client TCP/UDP IP Network Interface Internet Risultati Server TCP/UDP IP Network Interface Richiesta Applicazioni di Rete
Protocolli di applicazione
Reti di Calcolatori AA 2011/2012 http://disi.unitn.it/locigno/index.php/teaching-duties/computer-networks Protocolli di applicazione Csaba Kiraly Renato Lo Cigno Livello di applicazione A note on the use
Processi dell applicazione, socket e il sottostante protocollo di trasporto. Protocolli application-layer (cont).
Il Livello Applicazione Applicazioni e protocolli -layer Principali Obiettivi : Aspetti concettuali implementatividei protocolli di retedel livello applicazione paradigma Modelli di servizio Impareremo
Servizi di rete e web. Prof. Maurizio Naldi A.A. 2015/16
Servizi di rete e web Prof. Maurizio Naldi A.A. 2015/16 Applicazione Unità di trasmissione dati a livello applicazione Applicazione Presentazione Unità di trasmissione dati a livello presentazione Presentazione
Sicurezza delle applicazioni web: protocollo HTTP
Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Sicurezza delle applicazioni web: protocollo HTTP Alessandro Reina Aristide Fattori
Tito Flagella - Il protocollo HTTP
Tito Flagella - [email protected] Il protocollo HTTP Il protocollo HTTP È il protocollo standard tramite il quale i server Web rispondono alle richieste dei client (inizialmente i browser); È basato su un modello
Livello applicativo. Obiettivi specifici: ! Protocolli specifici: " http " ftp " smtp " pop " dns " Programmazione di applicazioni
Livello applicativo Obiettivi generali:! Aspetti concettuali/ implementativi dei protocolli applicativi " Paradigma client " Modelli dei servizi Obiettivi specifici:! Protocolli specifici: " http " ftp
Le Reti Informatiche
Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it [email protected] 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo
PROTOCOLLI APPLICATIVI PER INTERNET
PROTOCOLLI APPLICATIVI PER INTERNET IC3N 2000 N. 5 La famiglia dei protocolli TCP/IP Applicazioni e-mail,ftp,ssh,www TCP UDP ICMP IP ARP RARP IEEE 802-Ethernet-X25-Aloha ecc. Collegamento fisico 6 1 Protocolli
Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client
Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un
Lo strato di applicazione in Internet
Lo strato di applicazione in Internet Prof. Ing. Carla Raffaelli a.a. 2004/2005 Protocolli applicativi Sono i protocolli utilizzati dalle applicazioni per scambiarsi informazioni Esempi: HTTP per il web,
Sicurezza delle applicazioni web: protocollo HTTP
Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Anno Accademico 2010/2011 Sicurezza delle applicazioni web: protocollo HTTP Alessandro Reina, Aristide Fattori 05 Maggio
INFORMATICA. Prof. MARCO CASTIGLIONE. Istituto Tecnico Statale Tito Acerbo - PESCARA
INFORMATICA Prof. MARCO CASTIGLIONE Istituto Tecnico Statale Tito Acerbo - PESCARA 1.1 Introduzione Internet è una rete di calcolatori collegati tra loro e fisicamente posizionati in tutto il mondo RETE
Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo
Basi di Dati Architetture Client/Server D B M G Architettura centralizzata Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo Tutta l intelligenza
Il protocollo HTTP. Caratteristiche del protocollo HTTP. Versioni del protocollo. Due tipologie di messaggi:
Caratteristiche del protocollo HTTP Scambio di messaggi di richiesta e risposta Transazione HTTP o Web Protocollo stateless Il protocollo HTTP Basato sul meccanismo di naming degli URI per identificare
Protocolli applicativi basati su TCP/IP
Protocolli applicativi basati su TCP/IP A.A. 2005/2006 Walter Cerroni Protocolli applicativi Sono i protocolli utilizzati dalle applicazioni per scambiarsi informazioni attraverso la rete Esempi: HTTP
Protocolli per il Web. Impianti Informatici. Protocolli applicativi
Protocolli per il Web Protocolli applicativi I protocolli applicativi 2 Applicazioni Socket interface HTTP (WEB) SMTP (E-MAIL) FTP... NFS RPC DNS... Trasporto TCP UDP Rete ICMP RIP OSPF IP ARP RARP Non
Stack protocolli TCP/IP
Stack protocolli TCP/IP Application Layer Transport Layer Internet Layer Host-to-Nework Layer DNS SMTP Telnet HTTP TCP UDP IP Insieme di eterogenei sistemi di rete... 1 Concetti base Differenza tra i concetti
Protocolli strato applicazione in Internet
Protocolli strato applicazione in Internet Gruppo Reti TLC [email protected] http://www.tlc-networks.polito.it/ Protocolli di strato applicativo - 1 Modello client-server Tipica applicazione tra client
Prova in itinere Esempio d esame 1
Fondamenti di Internet e Reti Proff. A. Capone, M. Cesana, I. Filippini, G. Maier Cognome Nome Matricola Prova in itinere Esempio d esame 1 Tempo complessivo a disposizione per lo svolgimento: 1h30m Usare
Sicurezza delle applicazioni web: protocollo HTTP
Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Anno Accademico 2009/2010 Sicurezza delle applicazioni web: protocollo HTTP Roberto Paleari [email protected]
