G. Mecca – [email protected] – Università della Basilicata Tecnologie di Sviluppo per il Web...

53
G. Mecca – [email protected] – Università della G. Mecca – [email protected] – Università della Basilicata Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Transcript of G. Mecca – [email protected] – Università della Basilicata Tecnologie di Sviluppo per il Web...

Page 1: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

G. Mecca – [email protected] – Università della Basilicata G. Mecca – [email protected] – Università della Basilicata

Tecnologie di Sviluppo per il Web

Introduzione

Il Protocollo HTTP

versione 2.0Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons

(vedi ultima pagina)

Page 2: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

2G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Sommario

HTTP 1.0 Transazioni Autenticazione Messaggi HTTP 1.1

Connessioni Persist.Host VirtualiAutenticazioneHTTPS, SSL – cenni

Configurazione di un Server HTTP

Il Protocollo HTTP >> Sommario

Page 3: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

3G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0

“Standard” IETF (RFC 1945) >> HTTP 1.1 Protocollo di applicazione

Il Protocollo HTTP >> HTTP 1.0

HTTP

TCP

IP

Fisico

HTTP

TCP

IP

Fisicofisico

applicazione

trasporto

rete

collegamento

Browser Web Server Web

Page 4: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

4G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Transazioni

Scambio di messaggi HTTPTransazione

Transazione HTTPscambio di messaggi tra server e clientil client apre una connessione con il serveril client invia la richiesta sulla connessioneil server invia la risposta sulla connessionela connessione viene chiusa

Il Protocollo HTTP >> Transazioni

Page 5: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

5G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Transazioni

Caratteristiche del protocollonon orientato alle connessioni – una nuova

connessione per ogni transazioneprivo di stato – nella transazione successiva

non resta traccia di quanto avvenuto nelle transazioni precedenti

Attenzionela mancanza di stato influenza la scrittura

delle applicazioni

Il Protocollo HTTP >> Transazioni

Page 6: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

6G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Transazioni

Come nasce normalmente la richiestal’utente seleziona un URI

es: http://www.unibas.it/index.htmll’URI può essere specificato esplicitamente

es: nella barra degli indirizzi del browseroppure può provenire da un collegamento

ipertestuale selezionato dall’utente

Il Protocollo HTTP >> Transazioni

Page 7: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

7G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Transazioni in Dettaglio

I Operazionerisoluzione del nome: il client utilizza il

servizio DNS per risolvere il nome in num. IPes: www.unibas.it >> 193.204.16.105

II Operazioneviene richiesta una connessione al numero

IP e alla porta specificataes: 193.204.16.105:80

Il Protocollo HTTP >> Transazioni

Page 8: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

8G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Transazioni

III Operazioneottenuta la connessione, il browser effettua

una richiesta HTTP al server specificando il percorso e il nome della risorsaes: GET /index.html HTTP/1.0

IV Operazioneil server gestisce la richiesta e fornisce la

risposta

Il Protocollo HTTP >> Transazioni

Page 9: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

9G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Transazioni

Notale richieste HTTP sono difficilmente isolate

Esempiopagine HTML che contengono immagini il codice HTML della pagina e le immagini

sono risorse distinte, con URI distintiviene richiesto il codice HTMLsuccessivamente vengono richieste le

immagini necessarie alla visualizz. completa

Il Protocollo HTTP >> Transazioni

Page 10: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

10G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Transazioni

Il Protocollo HTTP >> Transazioni

Server

Webbrowser

connessione (IP, porta)es: www.unibas.it:80

ACK

richiesta (URI)es: /index.html

risposta

ACKrichiesta (URI)

es: /icons/dot.gif

risposta

connessione (IP, porta)es: www.unibas.it:80

connect()accept()

accept()

connect()

Page 11: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

11G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Autenticazione

Risorse accessibili sul servertutte quelle contenute nel file system virtuale

E’ possibile limitare l’accessodefinire utenti e password e restringere

l’accesso agli utenti autorizzati Reami” (“Realms”)

risorse che condividono gli stessi permessi; es: cartella

ogni reame ha un nome

Il Protocollo HTTP >> Autenticazione

Page 12: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

12G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Autenticazione

Autenticazione di tipo elementare (“Basic”)il server chiede al client di autenticarsi per il reameil client chiede nome utente e password all’utenteil client invia nome utente e password in chiaro al

server (codificati come base64)il browser “ricorda” le autorizzazioni ricevute per la

durata della sessione Sessione di lavoro

sequenza di richieste effettuate da un utentenormalmente si conclude chiudendo il browser

Il Protocollo HTTP >> Autenticazione

Page 13: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

13G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Autenticazione

Il Protocollo HTTP >> Autenticazione

Server

Webbrowser

connessione (IP, porta)es: www.unibas.it:80

ACK

richiesta (URI)es: /privato/index.html

richiesta di autenticazione (reame)es: Area Privata

risposta

nome utente e passwordes: Pinco, palla

connect()

accept()

nome utente

password non è necessariodigitare nome utentee password per altrerisorse del reame

connessione (IP, porta)es: www.unibas.it:80connect()

ACKaccept()

Page 14: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

14G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Configurazione del Server HTTP

Fino a questo puntoradice del file system virtuale ed aliasportadocumento standardtipi MIME

Altri parametri da configurareutenti e passworddefinizione dei reami e criteri di protezione

Il Protocollo HTTP >> Configurazione del Server HTTP

Page 15: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

15G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Configurazione di un Server HTTP

Internet Information Serveradotta il meccanismo di protezione di

Windows (utenti e password) Apache

creazione degli utenti: comando htpasswdelemento <Directory> di httpd.conf per

configurare reami e tipi di autenticazione per le cartelle

Il Protocollo HTTP >> Configurazione del Server HTTP

>> httpd.conf

Page 16: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

16G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Formato dei Messaggi

Struttura generale dei messaggivale per richiesta e per risposta

<linea iniziale>

[<intestazione1>: <valore1>]

[…]

[<intestazionen>: <valoren>]

<linea vuota>

[<corpo del messaggio>]

Il Protocollo HTTP >> Formato dei Messaggi

intestazioni HTTP

Page 17: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

17G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Formato dei Messaggi

Linea inizialenella richiesta contiene l’URInella risposta contiene l’esito della richiesta

Corponella richiesta è vuota o contiene la querynella risposta contiene la risorsa

Intestazionice ne sono numerose (vedi appendice)

Il Protocollo HTTP >> Formato dei Messaggi

Page 18: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

18G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Richiesta

Linea iniziale della richiesta<metodo> <URI> HTTP/1.0

MetodiGET: metodo ordinario per effettuare

richieste specificando l’URI della risorsaPOST: metodo per effettuare richieste

specificando l’URI ed una serie di parametri nel corpo della richiesta

HEAD: variante di GET a scopo di controllo

Il Protocollo HTTP >> Formato dei Messaggi

Page 19: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

19G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Richiesta

Metodo GETmetodo standardviene specificato l’URI della risorsail corpo della richiesta è vuotoeventuali parametri sono nella query (e

quindi sono visibili pubblicamente)GET /index.html HTTP/1.0GET /users/gmecca/index.html HTTP/1.0GET /bollo.cgi?targa=AB123DE HTTP/1.0

Il Protocollo HTTP >> Formato dei Messaggi

Page 20: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

20G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Richiesta

Metodo POSTutilizzato per colloquiare con i serviziviene specificato l’URI della risorsa senza

parametriparametri contenuti nel corpo del messaggio utile per dati privati o di una certa lunghezzaPOST /bollo.cgi HTTP/1.0

(in questo caso i parametri sono nel corpo)

Il Protocollo HTTP >> Formato dei Messaggi

Page 21: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

21G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Richiesta

Metodo HEADvariante di GET utilizzata principalmente a

scopo di controllo (es: validità) e debuggingla richiesta è del tutto simile ad una GETin risposta il server fornisce solo le

intestazioni (e non il corpo)HEAD /index.html HTTP/1.0HEAD /bollo.cgi?targa=AB123DE HTTP/1.0

Il Protocollo HTTP >> Formato dei Messaggi

Page 22: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

22G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Richiesta

Chi decide il metodo di richiesta ?non lo decide l’utente (trasparente)il client ordinariamente utilizza il metodo GETes: l’utente specifica un URI nella barraes: l’utente seleziona un collegamento

Metodo POSTquando l’utente sottomette una maschera

(form) il metodo può essere POST o GET

Il Protocollo HTTP >> Formato dei Messaggi

>> /tmp/provaMetodi.html + file di log

Page 23: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

23G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Richiesta

Intestazioni, alcuni esempiUser-Agent – es: User-Agent: Mozilla/4.0

(compatible; MSIE 6.0; Windows NT 5.1; Q312461)If-Modified-Since – es:

If-Modified-Since: Thu, 01 Apr 2002 16:00:00 GMT Authorization – es:

Authorization: Basic ZGRpbjpvcGVuIHNl== Referer – es. Referer: http://www.unibas.it/index.html

Il Protocollo HTTP >> Formato dei Messaggi

Page 24: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

24G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Risposta

Linea iniziale della rispostaHTTP/1.0 <codice numerico> <descrizione>

Codice numerico1xx: messaggio informativo2xx: richiesta esaudita con successo3xx: c’è stata una redirezione4xx: errore sul lato del client5xx: errore sul lato del server

Il Protocollo HTTP >> Formato dei Messaggi

Page 25: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

25G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Risposta

Esempi:HTTP/1.0 200 OK

risorsa nel corpo del messaggioHTTP/1.0 301 Moved Permanently

HTTP/1.0 302 Moved Temporarilynuovo URI nel corpo del messaggio

HTTP/1.0 404 Not FoundHTTP/1.0 401 Unauthorized

HTTP/1.0 500 Server Error

Il Protocollo HTTP >> Formato dei Messaggi

Page 26: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

26G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Risposta

Intestazioni, alcuni esempiContent-Type – es: Content-Type: text/htmlContent-Length – es: Content-Length: 650Last-Modified –

es: Last-Modified Thu, 01 Apr 2002 16:00:00 GMTPragma – es: Pragma: no-cacheServer – es: Server: Apache 1.3.20Location –

es: Location: http://www.unibas.it/newindex.htmlWWW-Authenticate –

es: WWW-Authenticate: Basic realm=“Area Privata”

Il Protocollo HTTP >> Formato dei Messaggi

Page 27: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

27G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Un Esempio di GET

RichiestaGET /news/index.html HTTP/1.0

User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows XP) Opera 6.0 [en]

Referer: http://www.unibas.it/index.html

<linea vuota>

RispostaHTTP/1.0 200 OKDate: Thu, 01 Apr 2002 16:00:00

GMT Content-Type: text/htmlContent-Length: 1534

<html> <head> … ...

</body> </html>

Il Protocollo HTTP >> Formato dei Messaggi

corpo dellarisposta:contenuto del file index.html

Page 28: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

28G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Un Esempio di POST

RichiestaPOST /bollo.asp HTTP/1.0

User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows XP) Opera 6.0 [en]

targa=AB123DE&utente=Mario%20Rossi

RispostaHTTP/1.0 200 OK

Date: Thu, 01 Apr 2002 16:00:00

GMT Content-Type: text/htmlContent-Length: 2384Pragma: no-cache

<html>…targa: AB123DE...</html>

Il Protocollo HTTP >> Formato dei Messaggi

corpo dellarisposta:codice HTMLgeneratodinamicam.

si suppone che l’utente abbiariempito e sottomesso una mascherabasata sul metodo POST

Page 29: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

29G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Un Esempio di POST

Attenzione alle differenzenel primo caso stiamo richiedendo il

contenuto di un file (index.html) nel secondo caso stiamo chiedendo

l’esecuzione di un’applicazione, passando dei parametri

l’applicazione genera il codice HTML corrispondente al messaggio di risposta

Il Protocollo HTTP >> Formato dei Messaggi

Page 30: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

30G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.1

Standard IETF (RFC 2616) Principali obiettivi

migliorare le prestazioni di HTTP 1.0rendere il protocollo più flessibile

Attualmenteè implementato dalla maggior parte dei

server e dei browserma viene mantenuta compatibilità con il

passato per via dei vecchi browser

Il Protocollo HTTP >> HTTP 1.1

Page 31: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

31G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.1

Problemi di HTTP 1.0lentezza e congestione nelle connessioni >>

connessioni multiple (“hack”)limitatezza nel numero di IP (un IP per

ciascun server Web)limiti del meccanismo di autorizzazione

(password in chiaro)limiti nel controllo dei meccanismi di caching

Il Protocollo HTTP >> HTTP 1.1

Page 32: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

32G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.1

Novità principaliconnessioni persistentihost virtualiautenticazione crittografata (“digest”)

Altre novitànuovi metodi di accesso, miglioramento dei

meccanismi di caching, “chunked encoding”)

Il Protocollo HTTP >> HTTP 1.1

Page 33: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

33G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.1: Connessioni Persistenti

Modalità standard di HTTP/1.1più di una transazione si può svolgere lungo

la stessa connessione TCPnuova intestazione del client

Connection: close nuovo messaggio del server

HTTP/1.1 100 Continueil server può chiudere la connessione

unilateralmente dopo un certo “timeout”

Il Protocollo HTTP >> HTTP 1.1 >> Connessioni Persistenti

Page 34: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

34G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.1: Connessioni Persistenti

Il Protocollo HTTP >> HTTP 1.1 >> Connessioni Persistenti

Server

Webbrowser

connessione (IP, porta)es: www.unibas.it:80

ACK

richiesta (URI)es: /index.html

risposta

richiesta (URI)/icons/dot.gif

Connection: close

risposta

connect()

accept()

Page 35: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

35G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.1: Host Virtuali

Ad uno stesso IP possono corrispondere nomi diversi e server diversirequisito importante per i “provider”IP e porta non bastano più ad identificare il

server Nuova intestazione del client

Host: serve a specificare il nome del serveres: Host: www.tin.it

Il Protocollo HTTP >> HTTP 1.1 >> Host Virtuali

Page 36: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

36G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.1: Hosts Virtuali

Indirizzo IP 192.168.3.109 con due host:www.tin.it, www.virgilio.it >>

/news/index.html Richiesta al sito 1:

GET /news/index.html HTTP/1.1

Host: www.tin.it

Richiesta al sito 2:GET /news/index.html HTTP/1.1

Host: www.virgilio.it

Il Protocollo HTTP >> HTTP 1.1

Page 37: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

37G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.1: Autenticazione “Digest”

Le password non vengono trasmesse Il server invia al browser una stringa

“nonce” Il browser risponde con

nome utenteun valore crittografato basato su: nome

utente, password, URI e nonce (algoritmo MD5, sunto di 128 bit in formato ASCII)

il browser ricorda l’autorizzazione

Il Protocollo HTTP >> HTTP 1.1 >> Autenticazione

Page 38: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

38G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.1: Autenticazione “Digest”

Esempio: RichiestaGET /privato/index.htm HTTP/1.1

RispostaHTTP/1.1 401 Unauthorized WWW-Authenticate: Digest

realm=“Area Privata", nonce="dcd98b7102dd2f0“

Il browser richiede nome utente e password all’utente

Nuova RichiestaGET /privato/index.htm HTTP/1.1Authorization: Digest

username=“Pinco", realm=“Area Privata", nonce=" dcd98b7102dd2f0", uri="/privato/index.htm", response="6629fae49393a05397450978507c4ef1“

Nuova Risposta(2xx oppure 4xx)

Il Protocollo HTTP >> HTTP 1.1 >> Autenticazione

Page 39: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

39G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.1: Autenticazione “Digest”

Vantaggiole password non vengono trasmesse

direttamente sulla rete in chiaroil meccanismo è decisamente più sicuro

Manon è sicuro al 100%è possibile intercettare la richiesta con URI,

nonce e sunto e riprodurla per accedere alle risorse protette

Il Protocollo HTTP >> HTTP 1.1 >> Autenticazione

Page 40: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

40G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTPS: Cenni

La soluzione: HTTPS HTTPS: HTTP over SSL (RFC 2818)

soluzione considerata più sicura SSL: Secure Socket Layer

protocollo di trasportotutti i messaggi sono crittografaticrittografia a chiave pubblica (certificato)trasparente per lo sviluppatore

Il Protocollo HTTP >> HTTP 1.1 >> HTTPS, SSL – cenni

Page 41: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

41G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.1: Altre Novità

Nuovi Metodi di AccessoAggiornamenti delle risorse sul server

PUT: salvare risorse sul file system del serverDELETE: eliminare risorse dal file system del

serverpoco utilizzati per motivi di sicurezza

Diagnostica della reteOPTIONSTRACEUPGRADE

Il Protocollo HTTP >> HTTP 1.1

Page 42: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

42G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.1: Altre Novità

Miglioramento dei meccanismi di cachinggestione molto più sofisticata delle cachepiù accuratezza nella specifica di validitàintestazione Cache-Control

“Chunked-Encoding”la risposta può essere inviata al client a

pezzi, anche prima di conoscerne la lunghezza totale

Il Protocollo HTTP >> HTTP 1.1

Page 43: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

43G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Configurazione del Server HTTP

A questo puntosiamo in grado di completare gli aspetti

relativi alla configurazione del server HTTP Ricapitoliamo Prima operazione

installazione dell’applicazionees: Internet Information Serviceses: Apache

Il Protocollo HTTP >> Configurazione del Server HTTP

Page 44: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

44G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Configurazione di un Server HTTP

Configurazioneradice del file system virtuale ed aliaseventuale porta e documento standardtipi MIMEutenti e passwordreami e criteri di protezione (basic o digest)

Aspetti avanzatiloggingcachinghost virtuali

Il Protocollo HTTP >> Configurazione del Server HTTP

Page 45: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

45G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Riassumendo

HTTP 1.0 Transazioni Autenticazione Messaggi HTTP 1.1

Connessioni PersistentiHost VirtualiAutenticazioneHTTPS, SSL – cenni

Configurazione di un Server HTTP

Il Protocollo HTTP >> Sommario

Page 46: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

46G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Intestazioni

Sono classificate in varie categorieintestazioni generaliintestazioni dei messaggi (valide sia per

richiesta che per risposta)intestazioni specifiche della richiestaintestazioni specifiche della risposta

Nel seguitoun elenco per HTTP 1.0 e HTTP 1.1

Il Protocollo HTTP >> Formato dei Messaggi

Page 47: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

47G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Intestazioni

Intestazioni dei messaggi (“Entity header”)Content-Type – es: Content-Type: text/htmlContent-Encoding – es: Content-Encoding: x-zipContent-Length – es: Content-Length: 650Last-Modified –

es: Last-Modified Thu, 01 Apr 2002 16:00:00 GMT Expires –

es: Expires: Thu, 01 Apr 2002 16:00:00 GMT Allow – es: Allow: GET, HEAD

Il Protocollo HTTP >> Formato dei Messaggi

Page 48: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

48G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Intestazioni

Intestazioni generali (“General header”)Date – es: Date: Thu, 01 Apr 2002 16:00:00 GMT Pragma – es: Pragma: no-cache

Intestazioni della risposta (“Response h.”)Server – es: Server: Apache 1.3.20Location –

es: Location: http://www.unibas.it/newindex.htmlWWW-Authenticate –

es: WWW-Authenticate: Basic realm=“Area Privata”

Il Protocollo HTTP >> Formato dei Messaggi

Page 49: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

49G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.0: Intestazioni

Intestazioni della richiesta (“Request h.”)User-Agent – es. User-Agent: Mozilla/4.0 (compatible;

MSIE 6.0; Windows NT 5.1; Q312461)User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:0.9.4) Gecko/20011019 Netscape6/6.2

From – es. From: [email protected]

es. If-Modified-Since: Thu, 01 Apr 2002 16:00:00 GMT Authorization –

es. Authorization: Basic QWxhZGRpbjpvcGVuIHNl== Referer – es. Referer: http://www.unibas.it/index.html

Il Protocollo HTTP >> Formato dei Messaggi

Page 50: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

50G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.1: Nuove Intestazioni

Intestazioni GeneraliDatePragmaCache-ControlConnectionTrailerTransfer-EncodingUpgradeViaWarning

Intestazioni di EntitàAllowContent-EncodingContent-LengthContent-TypeExpiresLast-ModifiedContent-LanguageContent-LocationContent-MD5Content-Range

Il Protocollo HTTP >> HTTP 1.1 >> Nuove Intestazioni

Page 51: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

51G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.1: Nuove Intestazioni

Int. di RichiestaAuthorizationFromIf-Modified-SinceRefererUser-AgentAcceptAccept-CharsetAccept-EncodingAccept-Language

ExpectHostIf-MatchIf-None-MatchIf-RangeIf-Unmodified-SinceMax-ForwardsProxy-AuthorizationRangeTE

Il Protocollo HTTP >> HTTP 1.1 >> Nuove Intestazioni

Page 52: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

52G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

HTTP 1.1: Nuove Intestazioni

Intestazioni di RispostaLocationServerWWW-AuthenticateAgeETagRetry-AfterVary

Il Protocollo HTTP >> HTTP 1.1 >> Nuove Intestazioni

Page 53: G. Mecca – mecca@unibas.it – Università della Basilicata Tecnologie di Sviluppo per il Web Introduzione Il Protocollo HTTP versione 2.0 Questo lavoro è

53G. Mecca - Tecnologie di Sviluppo per il WebG. Mecca - Tecnologie di Sviluppo per il Web

Termini della Licenza

Termini della Licenza

This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Questo lavoro viene concesso in uso secondo i termini della licenza “Attribution-ShareAlike” di Creative Commons. Per ottenere una copia della licenza, è possibile visitare http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.