La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

2-1 Web e HTTP Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© 1996-2004 All Rights Reserved)

Presentazioni simili


Presentazione sul tema: "2-1 Web e HTTP Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© 1996-2004 All Rights Reserved)"— Transcript della presentazione:

1 2-1 Web e HTTP Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)

2 2-2 Web e HTTP Terminologia essenziale r Una pagina Web è costituita da oggetti m HTML file, JPEG image, Java applet, audio file,… r Una pagina Web consiste di un file base HTML che fa riferimento ad altri oggetti r Ogni oggetto è raggiungibile attraverso un Uniform Resource Locator (URL) r Esempio di URL: host name path name

3 2-3 Protocollo HTTP: generalità HTTP: hypertext transfer protocol r Protocollo di livello applicativo per il Web r modello client/server m client: Browser (user agent) che richiede, riceve e mostra oggetti Web m server: Web server che invia oggetti in risposta alle richieste r HTTP 1.0: RFC 1945 r HTTP 1.1: RFC 2068 m (compatibile con HTTP 1.0) PC con Explorer Server con Apache Web server Mac con Navigator HTTP request HTTP response

4 2-4 Protocollo HTTP: generalità Usa il TCP: r Il client inizia una connessione TCP (utilizzando un socket) verso il server sulla porta 80 r Il server accetta la connesione TCP dal client r Vengono scambiati messaggi http (messaggi del protocollo di livello applicativo) tra il browser (client http) e il Web server (server http) r La connessione TCP è chiusa HTTP è stateless r Il server non mantiene informazione sulle richieste precedenti del client I protocolli che mantengono informazione di stato sono complessi (es. TCP) ! r la storia passata (stato) deve essere conservata Nota

5 2-5 Connessioni HTTP Connessione non persistente r Per ogni connessione TCP viene inviato un singolo oggetto r HTTP/1.0 usa una connessione non persistente Connessione persistente r Più oggetti possono essere inviati su una singola connessione TCP r HTTP/1.1 usa connessioni persistenti come default

6 2-6 Connessione non persistente L utente accede alla URL 1a.. Il cliente HTTP inizia una connessione TCP verso il server (processo) http sull host all a porta Il cliente HTTP manda un request message (contenente l URL) nel socket di connessione TCP. Il messaggio indica che il cliente vuole loggetto someDepartment/home.index 1b. Il server HTTP presso l host è in ascolto sulla porta 80. Accetta la richiesta di connessione e ne dà conferma al client 3. Il server HTTP riceve il messaggio di richiesta, forma il response message contenente loggetto richiesto e invia il messaggio al suo socket tempo (contiene testo e i riferimenti a 10 immagini jpeg)

7 2-7 Connessione non persistente (cont.) 5. Il cliente HTTP riceve il messaggio di risposta contenente il file html e lo visualizza. Analizzando il file html il browser trova i riferimenti a 10 oggetto jpeg 6. I passi 1-5 sono ripetuti per ognuno dei 10 oggetti jpeg 4. Il server HTTP chiude la connessione TCP tempo

8 2-8 Tempo di risposta Round Trip Time (RRT): tempo necessario a un piccolo pacchetto a viaggiare dal cliente al server e a tornare indietro Tempo di risposta (Response time): r un RTT per iniziare la connessione TCP r un RTT per la richiesta HTTP e i primi byte di risposta r tempo di trasmissione del file totale = 2 RTT+ tempo di trasmissione tempo di trasmissione file inizio connessione TCP RTT richiesta file RTT file ricevuto tempo

9 2-9 Connessioni persistenti e non persistenti Connessioni non persistenti r richiedono 2 RTT per oggetto r Ogni oggetto subisce lo slow start TCP r Comunque i browser spesso aprono connessioni TCP in parallelo per scaricare gli oggetti Connessioni persistenti r il server lascia la connessione aperta dopo aver inviato la risposta r i messaggi successivi tra lo stesso client e server sono trasmessi su quella connessione Persistenti senza pipelining r il clienta invia una nuova richiesta solo quando la risposta precedente è arrivata r 1 RTT per ogni oggetto referenziato Persistenti con pipelining r default in HTTP/1.1 r il cliente invia una richiesta appena incontra il riferimento ad un oggetto r richieste consecutive (back-to-back) r solo 1 RTT per tutti gli oggetti referenziati

10 2-10 HTTP request message r due tipi di messaggi HTTP: request, response r HTTP request message: m ASCII (human-readable format) GET /somedir/page.html HTTP/1.1 Host: User-agent: Mozilla/4.0 Connection: close Accept-language:fr (extra carriage return, line feed) request line (comandi GET, POST, HEAD) header lines Carriage return, line feed indica la fine del messaggio

11 2-11 HTTP request message: formato generale

12 2-12 Invio dei form Metodo Post: r Usato quando lutente compila una form r Il contenuto dei campi dei form sono inseriti nellEntitiy Body r Il comando richiede una pagina Web il cui contenuto dipende dalle informazioni nel campo body r Es. query inviata ad un motore di ricerca Metodo URL: r Usa il metodo GET r Linput è inserito nel campo URL della linea di richiesta:

13 2-13 Tipi di richiesta HTTP/1.0 r GET r POST r HEAD m chiede a server di lasciare il corpo dlloggetto fuori dalla risposta m usato spesso per debugging HTTP/1.1 r GET, POST, HEAD r PUT m carica il file contenuto nel body nel path specificato dal campo URL r DELETE m cancella il file specificato nel campo URL

14 2-14 HTTP response message HTTP/ OK Connection close Date: Thu, 06 Aug :00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 …... Content-Length: 6821 Content-Type: text/html data data data data data... status line (protocol status code status phrase) header lines data, es. file html richiesto

15 2-15 HTTP response message: formato generale

16 2-16 HTTP response: codici di stato + frase 200 OK m Successo, oggetto richiesto più avanti nel messaggio 301 Moved Permanently m Loggetto richiesto è stato spostato. Il nuovo indirizzo è specificato più avanti (Location:) 400 Bad Request m Richiesta incomprensibile per il server 404 Not Found m Il documento non è stato trovato sul server 505 HTTP Version Not Supported m versione richiesta dal protocollo HTTP non supportata dal server Prima riga del messaggio di risposta server->client. Alcuni esempi:

17 2-17 Prova HTTP (lato client) 1. Telnet al tuo favorito Web server: Apre una connessione TCP al port 80 a Ogni carattere digitato è inviato al port 80 at telnet Digita una GET HTTP request: GET /~ross/index.html HTTP/1.0 Digitando questo messaggio (carriage return due volte), si invia questa GET request minima (ma completa) al server HTTP 3. Si osservi la risposta del server HTTP 1.0 definito in RFC 1945 HTTP 1.1 definito in RFC 2068

18 2-18 Interazione user-server: autorizazzione Autorizzazione: controllo dellaccesso agli oggetti del server r authorization credentials: solitamente nome e password r stateless: il cliente deve fornire lautorizzazione per ogni richiesta authorization: header line in ogni richiesta se non cè authorization : header il server rifiuta laccesso e invia WWW authenticate: header nella risposta client server usual http request msg 401: authorization req. WWW authenticate: usual http request msg + Authorization: usual http response msgusual http request msg + Authorization: usual http response msg time Il browser memorizza nome & password in modo che lutente non debba digitarli ogni volta

19 2-19 Cookies: mantenere lo stato Molti dei più importanti siti web usano i cookie Quattro componenti: 1) cookie header line nel messaggio di risposta HTTP 2) cookie header line nel messaggio di richiesta HTTP 3) file cookie mantenuto nellhost e gestito dal browser 4) back-end database sul sito Web Esempio: m Susan accede Internet sempre dallo stesso PC m Visita un sito di e- commerce per la prima volta m Quando la richiesta iniziale HTTP arriva al sito, viene creata ununica ID e una entry nel backend database per quella ID

20 2-20 Cookies: mantenere lo stato (cont.) client server usual http request msg usual http response + Set-cookie: 1678 usual http request msg cookie: 1678 usual http response msg usual http request msg cookie: 1678 usual http response msg cookie- specific action cookie- spectific action server creates ID 1678 for user entry in backend database access Cookie file amazon: 1678 ebay: 8734 Cookie file ebay: 8734 Cookie file amazon: 1678 ebay: 8734 una settimana dopo:

21 2-21 Cookies (cont.) Utilizzo dei cookie: r autorizzazione r shopping carts r one click shopping r raccomandazioni r stato sessione utente (Web ) Cookies e privacy: r i cookie permettono ai siti di imparare molte cose sullutente r se si forniscono dati personali, il sito web associa tali dati al cookie nel DB di back- end Nota

22 2-22 GET condizionato: cache lato client r Obiettivo: non mandare loggetto se il cliente ha una versione aggiornata in cache r client: specifica la data della copia in cache nella richiesta HTTP If-modified-since: r server: la risposta non contiene loggetto se la copia in cache è aggiornata HTTP/ Not Modified client server HTTP request msg If-modified-since: HTTP response HTTP/ Not Modified oggetto non modificato HTTP request msg If-modified-since: HTTP response HTTP/ OK oggetto modificato


Scaricare ppt "2-1 Web e HTTP Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© 1996-2004 All Rights Reserved)"

Presentazioni simili


Annunci Google