tecnologie di sviluppo per il web -...

31
G. Mecca – [email protected] – Università della Basilicata Tecnologie di Sviluppo per il Web Architettura e Protocolli versione 1.0 del 11/03/2003 2 G. Mecca - Tecnologie di Sviluppo per il Web Sommario m Introduzione m 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

Upload: truongkhanh

Post on 18-Feb-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 2: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 3: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 4: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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)

Page 5: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 6: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 7: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 8: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 9: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 10: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 11: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 12: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 13: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 14: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 15: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 16: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 17: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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()

Page 18: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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()

Page 19: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 20: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 21: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 22: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 23: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 24: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 25: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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()

Page 26: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 27: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 28: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 29: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 30: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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

Page 31: Tecnologie di Sviluppo per il Web - db.unibas.itdb.unibas.it/users/mecca/corsi/2002-2003/sviluppoWeb/materiale/... · Tecnologie di Sviluppo per il Web ... ðprotocollo di interfaccia

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