Upload
truongkhanh
View
215
Download
0
Embed Size (px)
Citation preview
11/03/2003
1
G. Mecca – [email protected] – Università della Basilicata
Tecnologie di Sviluppo per il Web
Architettura e Protocolli
versione 1.0 del 11/03/2003
2G. Mecca - Tecnologie di Sviluppo per il Web
Sommario
m Introduzionem Architettura ðServer WebðProxy e CachingðBrowser
m URIðCodifica degli URIðRiferimento ad URI
m Tipi MIME
m HTTP 1.0ðTransazioniðAutenticazioneðMessaggi
m HTTP 1.1ðConnessioni Persist.ðHost VirtualiðAutenticazioneðHTTPS, SSL – cenniðNuove Intestazioni
Architettura e Protocolli >> Sommario
11/03/2003
2
3G. Mecca - Tecnologie di Sviluppo per il Web
Introduzione
m La storia di questo corso comincia nell’89ðTim Berners-Lee al CERN, progetto WWWðprimi prototipi nel 1991
m Idea: definire la tecnologia perðun ipertesto multimediale distribuito
(“distributed hypermedia”)ðipertesto = testo a sviluppo non lineareðmultimediale = più di un “medium”
Architettura e Protocolli >> Introduzione
4G. Mecca - Tecnologie di Sviluppo per il Web
Introduzione
m Tre idee fondamentaliðun protocollo client-server (HTTP)ðun sistema di indirizzamento (URL)ðun linguaggio per la compilazione (HTML)
m Inizialmenteðpubblicazione di contenuti (documenti)
m Oggið80% dei flussi Internetðcontenuti e servizi (sistemi informativi)ðsviluppo rapido, metodi non consolidati
Architettura e Protocolli >> Introduzione
11/03/2003
3
5G. Mecca - Tecnologie di Sviluppo per il Web
Architettura
m Architettura Client-Server
Architettura e Protocolli >> Architettura
Serverprotocollo
HTTPrisorse
richieste (URL)
risposte Rete
TCP/IPbrowser
HTTP
clientHTTP
Applicazione(es: Java)
6G. Mecca - Tecnologie di Sviluppo per il Web
Architettura
mRisorseðcontenuti o servizi interattivi
mContenutiðserver: invia documenti ipermediali (pagine)ðbrowser: visualizza e consente la navigaz.
m Servizi Interattiviðserver: esegue la logica applicativaðbrowser: gestisce l’interfaccia con l’utente
Architettura e Protocolli >> Architettura
11/03/2003
4
7G. Mecca - Tecnologie di Sviluppo per il Web
Server Web
m Server HTTPðinclude autenticazioni e autorizzazioni
mGestore del file systemðcontenuti statici salvati come file
m Server applicativoðprotocollo di interfaccia tra http e applicazioni
(es: CGI)ðgestore di applicazioni e componenti
Architettura e Protocolli >> Architettura >> Server Web
8G. Mecca - Tecnologie di Sviluppo per il Web
Server Web
Architettura di Riferimento
m Architettura a 3 livelli
Architettura e Protocolli >> Architettura >> Server Web
DB
DBMS
HT
TP
Rete
TCP/IP
file
systemGes
tore
dei
Fie
ServerApplicativo
componenti
browserHTTP
clientHTTP
Applicazione(es: Java)
Registrazionedegli accessi (log)
11/03/2003
5
9G. Mecca - Tecnologie di Sviluppo per il Web
Server Web
m Apache HTTP Server (httpd.apache.org)ðopen source (deriva da NCSA)ðserver HTTPðvari protocolli di interfaccia con server
applicativi (es: CGI, PHP)
mMicrosoft Internet Information Servicesðserver HTTP ðintegrato con il server applicativo .NET
Architettura e Protocolli >> Architettura >> Server Web
10G. Mecca - Tecnologie di Sviluppo per il Web
Server Web
m Apache Tomcat (jakarta.apache.org)ðserver applicativo open source per Servlet e JSPðinclude server HTTP
m Sun IPlanet, Oracle Application Server, Bea WebLogic ed altriðserver applicativi commerciali per J2EEðincludono server HTTP
m JBoss (www.jboss.org)ðserver applicativo open source per J2EEðinclude server HTTP
Architettura e Protocolli >> Architettura >> Server Web
11/03/2003
6
11G. Mecca - Tecnologie di Sviluppo per il Web
Server Web
m Apache è il server Web più diffuso
Architettura e Protocolli >> Architettura >> Server Web
12G. Mecca - Tecnologie di Sviluppo per il Web
Server Web
DB
DBMSHT
TP
file
systemGes
tore
dei
Fie
ServerApplicativo
componenti
Registrazionedegli accessi (log)
Caching e Proxy
mCaching a vari livelli delle risposte
Architettura e Protocolli >> Architettura >> Caching e Proxy
browser
Cac
he
del
ser
ver
Cachedel browser
Cachedel proxy
ServerProxy
11/03/2003
7
13G. Mecca - Tecnologie di Sviluppo per il Web
Server Web
m In sintesi: Principali servizi del serverðservizio HTTP verso il clientðautenticazione e autorizzazioneðgestione delle risorse sul file systemðgestione delle applicazioniðregistrazione degli accessiðgestione dei meccanismi di caching
Architettura e Protocolli >> Architettura >> Server Web
14G. Mecca - Tecnologie di Sviluppo per il Web
Browser Web
m Principali serviziðconsente di specificare le richieste (URL)ðimplementa il protocollo HTTPðvisualizza il contenuto delle risposte e
consente la navigazioneðcache localeðaltri servizi (preferiti, stampa, salva, ecc.)
m Browser diversi, diverse compatibilità
Architettura e Protocolli >> Architettura >> Browser Web
11/03/2003
8
15G. Mecca - Tecnologie di Sviluppo per il Web
Browser Web
m Microsoft Internet Explorerðgratuito, arrivato alla versione 6 (prima 2, 3, 4, 5)ðleader di mercato
m Netscapeðgratuito, arrivato alla versione 6.2 (Gecko e Mozilla)ðprima: Netscape Navigator (2, 3, 4 fino a 4.78)
m Operað“adware”, arrivato alla versione 6 (5 per Linux)
m Lynxðbrowser esclusivamente testuale, arrivato alla v. 2.8
Architettura e Protocolli >> Architettura >> Browser Web
16G. Mecca - Tecnologie di Sviluppo per il Web
Browser Web
m Altri browserðAmaya, browser di del consorzio W3CðKonqueror, browser di KDEðGaleon, browser di Gnome
m Browser per disabiliðes: IBM Home Page Reader
m Browser per dispositivi mobiliðes: Eudora Web per Palmðes: Pocket Internet Explorer per Pocket PC
Architettura e Protocolli >> Architettura >> Browser Web
11/03/2003
9
17G. Mecca - Tecnologie di Sviluppo per il Web
Browser Web: Statistiche
Architettura e Protocolli >> Architettura >> Browser Web
Browser Fonte 3Fonte 2Fonte 1
IE5 (<) 40%58%56%
IE6 (>) 31%32%32%
7.4%0.1%1.5%Altri
0.05%1.4%0.05%NN3
0.2%0.05%0.05%IE3
0.55%0.15%0.7%Opera (>)
Gecko (>) 13%1.1%1.1%
Fonte: http://www.upsdell.com/BrowserNews/, aprile 2002
5.8%5.0%4.6%NN4 (<)
1.8%2.7%3.7%IE4 (<)
18G. Mecca - Tecnologie di Sviluppo per il Web
Uniform Resource Identifiers (URI)
m Sistema di Indirizzamento su Webðstringhe di caratteri ASCIIðidentificatori le risorse
m Standard IETF (RFC 2396)ðInternet Engineering Task Force
mUniform Resource Identifiers (URI)ðUniform Resource Locators (URL)ðUniform Resource Names (URN)
Architettura e Protocolli >> URI
11/03/2003
10
19G. Mecca - Tecnologie di Sviluppo per il Web
Uniform Resource Identifiers (URI)
mURLðla risorsa è fisicamente accessibileðla stringa descrive il metodo (primario) per
accedere alla risorsa
mURNðla stringa non descrive il metodo d’accessoðla risorsa può non essere fisicamente
accessibile (es: namespace)
mCi concentreremo sugli URL
Architettura e Protocolli >> URI
20G. Mecca - Tecnologie di Sviluppo per il Web
URI
m Forma generaleð<protocollo>:<parte-dipendente-dal-protocollo>
m Esempi:ðhttp://www.difa.unibas.it/users/gmecca/ ðftp://lab.unibas.it/pubðmailto:[email protected]ðgopher://spinaltap.micro.umn.edu/00/ðnews:comp.infosystems.www.servers.unixðtelnet://melvyl.ucop.edu/
Architettura e Protocolli >> URI
11/03/2003
11
21G. Mecca - Tecnologie di Sviluppo per il Web
URI basati su HTTP
m Organizzazione gerarchica delle risorseðfile system “virtuale”ð“vista” sul file system reale del server
m Directory radice “/”ðes: f:\sito\
m Sottodirectoryðes: f:\sito\immagini\ >> /immagini/
m Fileðes: f:\sito\immagini\icon.gif >> /immagini/icon.gif
Architettura e Protocolli >> URI
22G. Mecca - Tecnologie di Sviluppo per il Web
URI basati su HTTP
m Aliasðpercorsi corrisponenti a “punti di montaggio”
m E’ possibile montare:ðaltre porzioni del file system
es: e:\utenti >> /users/e:\utenti\gmecca\ >> /users/gmecca/e:\utenti\index.html >> /users/index.html
ðoppure applicazioni (>>)
Architettura e Protocolli >> URI
11/03/2003
12
23G. Mecca - Tecnologie di Sviluppo per il Web
URI basati su HTTP
Architettura e Protocolli >> URI
e:\dati
utentigmecca…
File system reale File system virtualef:\
Programmisito
immagini
pagine
icon.gif…
…
index.html…
/
immagini
pagine
icon.gif…
…
index.html…
users
gmecca…
24G. Mecca - Tecnologie di Sviluppo per il Web
URI basati su HTTP
m Forma generaleðhttp://<server>[:<porta>][/<percorso>][?<query>]
m Server e Portaðnome o indirizzo IP del server e porta TCP su cui il
servizio ascolta (standard:80)m Percorsoðpercorso nel file system virtuale
m Queryðlista di coppie “nome=valore” separate da &ðnel caso la risorsa sia un’applicazione, parametri per
l’esecuzione
Architettura e Protocolli >> URI
11/03/2003
13
25G. Mecca - Tecnologie di Sviluppo per il Web
Codifica dell’URI (“URI Encoding”)
mCaratteri riservati nella sintassið";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","
mCaratteri esclusi dalla sintassið"<" | ">" | "#" | "%" | <"> | “ “ð"{" | "}" | "|" | "\" | "^" | "[" | "]" | "`"
mQuesti caratteri devono essere codificatið%<hex><hex> es: %20ð<hex><hex>: codifica hex del codice ASCII
Architettura e Protocolli >> URI >> Codifica dell’URI
26G. Mecca - Tecnologie di Sviluppo per il Web
Codifica dell’URI
m Esempihttp://www.unibas.it/index.htmlhttp://www.unibas.it:8080/news/index.htmlhttp://www.difa.unibas.it/users/gmecca/corsi/index.htmlhttp://www.aci.it/pagabollo?targa=AD123DEhttp://www.microsoft.com/redir.dll?prd=ie&ar=windowshttp://www.finanze.it/cf.asp?utente=G.%20Mecca
Architettura e Protocolli >> URI >> Codifica dell’URI
11/03/2003
14
27G. Mecca - Tecnologie di Sviluppo per il Web
Riferimento ad URI
m “URI Reference”ðriferimenti utilizzati nei collegamenti
ipertestuali
m Può essereðassolutoðrelativo
m AssolutoðURI completo
Architettura e Protocolli >> URI >> Riferimento ad URI
28G. Mecca - Tecnologie di Sviluppo per il Web
Riferimento ad URI
m Riferimento relativoðcontiene solo <percorso>[?<query>]ðrelativo ad un URI base di riferimentoðviene automaticamente espanso dal browser
m Esempio ðhttp://www.unibas.it/didattica/index.htmlð“lauree/informatica.html” >>
http://www.unibas.it/didattica/lauree/informatica.htmlð“../index.html” >> http://www.unibas.it/index.html
Architettura e Protocolli >> URI >> Riferimento ad URI
11/03/2003
15
29G. Mecca - Tecnologie di Sviluppo per il Web
Riferimento ad URI
m File indice standardðURI il cui percorso termina con una cartella;
es: http://www.unibas.it/ðviene servito un file standard se è presente;
es: index.html
m Frammentiðè possibile fare riferimento ad un frammento
di una pagina (ormai poco usati)ð#<identificatore-del-frammento>
Architettura e Protocolli >> URI >> Riferimento ad URI
30G. Mecca - Tecnologie di Sviluppo per il Web
Tipi MIME (“MIME Types”)
m Il contenuto corrispondente ad un URIðdiversi formati (es: testo, HTML, gif, jpeg…)
m Il server specifica al browser il tipo MIMEðtipo del contenuto (“Contenty-Type”)
mMultipurpose Internet Mail ExtensionðIdentificatori standard per vari tipi di file
m Standard IETF (RFC 2045, RFC 2046)ðmantenuti da IANA
Architettura e Protocolli >> Tipi MIME
11/03/2003
16
31G. Mecca - Tecnologie di Sviluppo per il Web
Tipi di Contenuto (“Content-Types”)
m textð text/plainð text/htmlð text/xml …
m imageð image/gifð image/jpegð image/png …
m applicationð application/pdf
ð application/zipð application/mswordð application/X-…
m videoð video/mpeg …
m audiom multipartðmultipart/form-data …
m messagem model
Architettura e Protocolli >> Tipi MIME
32G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.0
m “Standard” IETF (RFC 1945) >> HTTP 1.1m Protocollo di applicazione
Architettura e Protocolli >> HTTP 1.0
HTTP
TCP
IP
Fisico
HTTP
TCP
IP
Fisicofisico
applicazione
trasporto
rete
collegamento
Browser Web Server Web
11/03/2003
17
33G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.0: Transazioni
m Filosofiaðprotocollo non orientato alle connessioniðprotocollo privo di stato
m Transazioneðscambio di messaggi tra server e clientðil client apre una connessione TCP con il serverðil client invia la richiesta sulla connessioneðil server invia la risposta sulla connessioneðla connessione viene chiusa
Architettura e Protocolli >> HTTP 1.0 >> Transazioni
34G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.0: Transazioni
Architettura e Protocolli >> HTTP 1.0 >> Transazioni
ServerWebbrowser
connessione (IP, porta)es: www.unibas.it:80
ACK
richiesta (URI)es: /index.html
risposta
ACKrichiesta (URI)/icons/dot.gif
risposta
connessione (IP, porta)es: www.unibas.it:80
connect()accept()
accept()
connect()
11/03/2003
18
35G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.0: Autenticazione
m Utenti, password e autorizzazionim “Reami” (“Realms”)ðgruppi di risorse che condividono le stesse
autorizzazioni; nome di reamem Autenticazione di tipo elementare (“Basic”)ðil server chiede al client di autenticarsi per il reameðil client chiede nome utente e password all’utenteðil client invia nome utente e password in chiaro al
server (codificati come base64)ðil browser “ricorda” le autorizzazioni ricevute
Architettura e Protocolli >> HTTP 1.0 >> Autenticazione
36G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.0: Autenticazione
Architettura e Protocolli >> HTTP 1.0 >> Autenticazione
ServerWebbrowser
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, segreto
connect()
accept()
nome utente
password non è necessariodigitare nome utentee password per altrerisorse del reame
connessione (IP, porta)es: www.unibas.it:80connect()
ACKaccept()
11/03/2003
19
37G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.0: Formato dei Messaggi
m Struttura generale dei messaggið<linea iniziale>ð[<intestazione1>: <valore1>]ð[…]ð[<intestazionen>: <valoren>]ð<linea vuota>ð[<corpo del messaggio>]
Architettura e Protocolli >> HTTP 1.0 >> Formato dei Messaggi
38G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.0: Richiesta
m Linea iniziale della richiestað<metodo> <URI> HTTP/1.0
m MetodoðGET, HEAD, POST
m Metodo GETðmetodo standard, URI, corpo vuotoðGET /index.html HTTP/1.0ðGET /users/gmecca/index.html HTTP/1.0ðGET /bollo.cgi?targa=AB123DE HTTP/1.0
Architettura e Protocolli >> HTTP 1.0 >> Formato dei Messaggi
11/03/2003
20
39G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.0: Richiesta
m Metodo HEADðchiede in risposta solo le intestazioni, corpo vuotoðHEAD /index.html HTTP/1.0ðHEAD /bollo.cgi?targa=AB123DE HTTP/1.0
m Metodo POSTðquery al server nel corpo del messaggio invece che
nell’URI (dati privati o di una certa lunghezza)ðPOST /bollo.cgi HTTP/1.0
(in questo caso la query è nel corpo)
Architettura e Protocolli >> HTTP 1.0 >> Formato dei Messaggi
40G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.0: Risposta
m Linea iniziale della rispostaðHTTP/1.0 <codice numerico> <descrizione>
mCodice numericoð1xx: messaggio informativoð2xx: successoð3xx: c’è stata una redirezioneð4xx: errore sul lato del clientð5xx: errore sul lato del server
Architettura e Protocolli >> HTTP 1.0 >> Formato dei Messaggi
11/03/2003
21
41G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.0: Risposta
m Esempi:ðHTTP/1.0 200 OK
risorsa nel corpo del messaggioðHTTP/1.0 301 Moved Permanently
HTTP/1.0 301 Moved Temporarilynuovo URI nel corpo del messaggioðHTTP/1.0 404 Not Found
HTTP/1.0 401 UnauthorizedðHTTP/1.0 500 Server Error
Architettura e Protocolli >> HTTP 1.0 >> Formato dei Messaggi
42G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.0: Intestazioni
m Intestazioni dei messaggi (“Entity header”)ðContent-Type – es: Content-Type: text/htmlðContent-Encoding – es: Content-Encoding: x-zipðContent-Length – es: Content-Length: 650ðLast-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
Architettura e Protocolli >> HTTP 1.0 >> Formato dei Messaggi
11/03/2003
22
43G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.0: Intestazioni
m Intestazioni generali (“General header”)ðDate – es: Date: Thu, 01 Apr 2002 16:00:00 GMT ðPragma – es: Pragma: no-cache
m Intestazioni della risposta (“Response h.”)ðServer – es: Server: Apache 1.3.20ðLocation –
es: Location: http://www.unibas.it/newindex.htmlðWWW-Authenticate –
es: WWW-Authenticate: Basic realm=“Area Privata”
Architettura e Protocolli >> HTTP 1.0 >> Formato dei Messaggi
44G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.0: Intestazioni
m 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]ðIf-Modified-Since –
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
Architettura e Protocolli >> HTTP 1.0 >> Formato dei Messaggi
11/03/2003
23
45G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.0: Un Esempio di GET
m RichiestaGET /news/index.html HTTP/1.0User-Agent: Mozilla/4.0
(compatible; MSIE 5.0; Windows XP) Opera 6.0 [en]
Referer: http://www.unibas.it/index.html
<linea vuota>
m RispostaHTTP/1.0 200 OKDate: Thu, 01 Apr 2002 16:00:00
GMTContent-Type: text/htmlContent-Length: 1534
<html><head>…</html>
Architettura e Protocolli >> HTTP 1.0 >> Formato dei Messaggi
46G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.0: Un Esempio di POST
m RichiestaPOST /bollo.asp HTTP/1.0User-Agent: Mozilla/4.0
(compatible; MSIE 5.0; Windows XP) Opera 6.0 [en]
targa=AB123DE&utente=Mario%20Rossi
m RispostaHTTP/1.0 200 OKDate: Thu, 01 Apr 2002 16:00:00
GMTContent-Type: text/htmlContent-Length: 2384Pragma: no-cache
<html>…</html>
Architettura e Protocolli >> HTTP 1.0 >> Formato dei Messaggi
11/03/2003
24
47G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.1
m Standard IETF (RFC 2616)m Principali obiettiviðmigliorare le prestazioni di HTTP 1.0ðrendere il protocollo più flessibile
m Problemi di HTTP 1.0ðlentezza e congestione nelle connessioni (“hack”)ðlimitatezza nel numero di IPðlimiti del meccanismo di autorizzazioneðlimiti nel controllo dei meccanismi di caching
Architettura e Protocolli >> HTTP 1.1
48G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.1
mNovitàðconnessioni persistentiðhost virtualiðautenticazione crittografata (“digest”)ðnuovi metodið“chunked encoding”ðmiglioramento dei meccanismi di caching
Architettura e Protocolli >> HTTP 1.1
11/03/2003
25
49G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.1: Connessioni Persistenti
mModalità standard di HTTP/1.1ðpiù di una transazione si può svolgere lungo
la stessa connessione TCPðnuova intestazione del client
Connection: close (per i client HTTP/1.0)ðnuovo messaggio del server
HTTP/1.1 100 Continueðil server può chiudere la connessione
unilateralmente dopo un certo “timeout”
Architettura e Protocolli >> HTTP 1.1 >> Connessioni Persistenti
50G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.1: Connessioni Persistenti
Architettura e Protocolli >> HTTP 1.1 >> Connessioni Persistenti
ServerWeb
browser
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()
11/03/2003
26
51G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.1: Host Virtuali
m Ad uno stesso Ip possono corrispondere nomi diversi e server diversiðrequisito importante per i “provider”ðIP e porta non bastano più ad identificare il
server
mNuova intestazione del clientðHost: serve a specificare il nome del server
es: Host: www.tin.it
Architettura e Protocolli >> HTTP 1.1 >> Host Virtuali
52G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.1: Hosts Virtuali
m Indirizzo IP 192.168.3.109 con due host:ðwww.tin.it, www.virgilio.it >>
/news/index.html
mRichiesta al sito 1:GET /news/index.html HTTP/1.1Host: www.tin.it
mRichiesta al sito 2:GET /news/index.html HTTP/1.1Host: www.virgilio.it
Architettura e Protocolli >> HTTP 1.1
11/03/2003
27
53G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.1: Autenticazione “Digest”
m Le password non vengono trasmessem Il server invia al browser una stringa
(“nonce”)m Il browser risponde conðnome utenteðun valore crittografato basato su: nome
utente, password, URI e nonce (algoritmo MD5, sunto di 128 bit in formato ASCII)ðil browser ricorda l’autorizzazione
Architettura e Protocolli >> HTTP 1.1 >> Autenticazione
54G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.1: Autenticazione “Digest”
m Esempio: RichiestaGET /privato/index.htm HTTP/1.1
m RispostaHTTP/1.1 401 Unauthorized WWW-Authenticate: Digest
realm=“Area Privata", nonce="dcd98b7102dd2f0“
m Il browser richiede nome utente e password all’utente
m Nuova RichiestaGET /privato/index.htm HTTP/1.1Authorization: Digest
username=“Pinco", realm=“Area Privata", nonce=" dcd98b7102dd2f0", uri="/privato/index.htm", response="6629fae49393a05397450978507c4ef1“
m Nuova Risposta(2xx oppure 4xx)
Architettura e Protocolli >> HTTP 1.1 >> Autenticazione
11/03/2003
28
55G. Mecca - Tecnologie di Sviluppo per il Web
HTTPS: Cenni
m Anche il sistema “Digest” ha difettimHTTPS: HTTP over SSL (RFC 2818)ðsoluzione considerata più sicura
m SSL: Secure Socket Layerðprotocollo di trasportoðtutti i messaggi sono crittografatiðcrittografia a chiave pubblica (certificato)ðtrasparente per lo sviluppatore
Architettura e Protocolli >> HTTP 1.1 >> HTTPS, SSL – cenni
56G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.1: Nuovi Metodi
m Aggiornamenti delle risorse sul serverðPUT: salvare risorse sul file system del serverðDELETE: eliminare risorse dal file system del serverðpoco utilizzati per motivi di sicurezza
m Diagnostica della reteðOPTIONSðTRACEðUPGRADE
Architettura e Protocolli >> HTTP 1.1
11/03/2003
29
57G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.1: Altre Novità
m “Chunked-Encoding”ðla risposta può essere inviata al client a
pezzi, anche prima di conoscerne la lunghezza totale
mMiglioramento dei meccanismi di cachingðgestione molto più sofisticata delle cacheðpiù accuratezza nella specifica di validitàðalgoritmi standard di verifica della validità
Architettura e Protocolli >> HTTP 1.1
58G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.1: Nuove Intestazioni
m Intestazioni Generalið Dateð Pragmað Cache-Controlð Connectionð Trailerð Transfer-Encodingð Upgradeð ViaðWarning
m Intestazioni di Entitàð Allowð Content-Encodingð Content-Lengthð Content-Typeð Expiresð Last-Modifiedð Content-Languageð Content-Locationð Content-MD5ð Content-Range
Architettura e Protocolli >> HTTP 1.1 >> Nuove Intestazioni
11/03/2003
30
59G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.1: Nuove Intestazioni
m Int. di RichiestaðAuthorizationðFromðIf-Modified-SinceðRefererðUser-AgentðAcceptðAccept-CharsetðAccept-EncodingðAccept-Language
ðExpectðHostðIf-MatchðIf-None-MatchðIf-RangeðIf-Unmodified-SinceðMax-ForwardsðProxy-AuthorizationðRangeðTE
Architettura e Protocolli >> HTTP 1.1 >> Nuove Intestazioni
60G. Mecca - Tecnologie di Sviluppo per il Web
HTTP 1.1: Nuove Intestazioni
m Intestazioni di RispostaðLocationðServerðWWW-AuthenticateðAgeðETagðRetry-AfterðVary
Architettura e Protocolli >> HTTP 1.1 >> Nuove Intestazioni
11/03/2003
31
61G. Mecca - Tecnologie di Sviluppo per il Web
Sommario
m Introduzionem Architettura ðServer WebðProxy e CachingðBrowser
m URIðCodifica degli URIðRiferimento ad URI
m Tipi MIME
m HTTP 1.0ðTransazioniðAutenticazioneðFormato dei Messaggi
m HTTP 1.1ðConnessioni Persist.ðHost VirtualiðAutenticazioneðHTTPS, SSL – cenniðNuove Intestazioni
Architettura e Protocolli >> Sommario