La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

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

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

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

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

7 Connessione non persistente (cont.)
4. Il server HTTP chiude la connessione TCP 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 tempo 6. I passi 1-5 sono ripetuti per ognuno dei 10 oggetti jpeg

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): un RTT per iniziare la connessione TCP un RTT per la richiesta HTTP e i primi byte di risposta tempo di trasmissione del file totale = 2 RTT+ tempo di trasmissione tempo di trasmissione file inizio connessione TCP RTT richiesta ricevuto tempo

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

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

11 HTTP request message: formato generale

12 Invio dei form Metodo Post: Metodo URL:
Usato quando l’utente compila una form Il contenuto dei campi dei form sono inseriti nell’Entitiy Body Il comando richiede una pagina Web il cui contenuto dipende dalle informazioni nel campo body Es. query inviata ad un motore di ricerca Metodo URL: Usa il metodo GET L’input è inserito nel campo URL della linea di richiesta:

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

14 HTTP response message status line (protocol status code status phrase)
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 ... header lines data, es. file html richiesto

15 HTTP response message: formato generale

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

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

18 Interazione user-server: autorizazzione
Autorizzazione: controllo dell’accesso agli oggetti del server authorization credentials: solitamente nome e password stateless: il cliente deve fornire l’autorizzazione per ogni richiesta authorization: header line in ogni richiesta se non c’è authorization: header il server rifiuta l’accesso e invia WWW authenticate: header nella risposta client server usual http request msg 401: authorization req. WWW authenticate: usual http request msg + Authorization:<cred> usual http response msg usual http request msg + Authorization:<cred> time usual http response msg Il browser memorizza nome & password in modo che l’utente non debba digitarli ogni volta

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 nell’host e gestito dal browser 4) back-end database sul sito Web Esempio: Susan accede Internet sempre dallo stesso PC Visita un sito di e-commerce per la prima volta Quando la richiesta iniziale HTTP arriva al sito, viene creata un’unica ID e una entry nel backend database per quella ID

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

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

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


Scaricare ppt "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