Laboratorio Di Basi Di Dati 05 Architettura Del Web

11

Click here to load reader

Transcript of Laboratorio Di Basi Di Dati 05 Architettura Del Web

Page 1: Laboratorio Di  Basi Di  Dati 05  Architettura Del  Web

1

A.A. 2005/2006 Basi di Dati e Laboratorio 1

Corso di Basi di Dati e Laboratorio

Introduzione al WebAlfio Ferrara - Stefano Montanelli

A.A. 2005/2006 Basi di Dati e Laboratorio 2

Architettura del Web

• Personaggi principali– HTTP– Web server– Browser– HTML– CSS– XML

A.A. 2005/2006 Basi di Dati e Laboratorio 3

Architettura del Web

• I protagonisti del Web dinamico– DBMS server– Linguaggi di scripting lato server– Linguaggi di scripting lato client– Plugin

Page 2: Laboratorio Di  Basi Di  Dati 05  Architettura Del  Web

2

A.A. 2005/2006 Basi di Dati e Laboratorio 4

Architettura del Web

• I volti nuovi– SOAP– WSDL– XSLT– RDF– OWL– …

A.A. 2005/2006 Basi di Dati e Laboratorio 5

Architettura del Web

• Il protocollo HTTP consente l’invio di richieste e risposte fra un client(tipicamente un browser) e un server

• Le comunicazioni possono veicolare diverse tipologie di contenuto (testo, dati binari)

• Tipicamente vengono trasmessi documenti testuali (HTML, XML)

A.A. 2005/2006 Basi di Dati e Laboratorio 6

Architettura del Web

• Un documento di testo inviato attraverso il protocollo HTTP possiede una codifica

• In particolare lo standard HTML permette di definire documenti ipertestuali, e contiene informazioni di presentazione per il client

• XML consente di definire la struttura del documento a prescindere dalla sua presentazione

Page 3: Laboratorio Di  Basi Di  Dati 05  Architettura Del  Web

3

A.A. 2005/2006 Basi di Dati e Laboratorio 7

Il Web statico

Client

HTTP Server

URLHTTP

Richiesta

TestoHTTP

Risposta

Binari

A.A. 2005/2006 Basi di Dati e Laboratorio 8

HTTP

• La comunicazione HTTP– Il client apre una connessione TCP/IP…– …invia un messaggio HTTP e rimane in

attesa…– …il server risponde con un messaggio

HTTP…– …la connessione TCP/IP viene chiusa

A.A. 2005/2006 Basi di Dati e Laboratorio 9

HTTP Request

• Specifica del metodo di invio (POST/GET), del destinatario, e della versione del protocollo

• Specifica dell’URL del server• Specifica del tipo di pacchetto (e.g.,

text/html)• Specifica della dimensione del pacchetto

Page 4: Laboratorio Di  Basi Di  Dati 05  Architettura Del  Web

4

A.A. 2005/2006 Basi di Dati e Laboratorio 10

HTTP Response

• Codice della risposta (e.g., ok, bad request, unauthorized, …)

• Tipo di dati inviato• Dimensione del pacchetto di risposta

A.A. 2005/2006 Basi di Dati e Laboratorio 11

Il metodo GET

GET URI?parametro=valore HTTP/1.1Host: nome.dominio.orgAccept: text/html

HTTP/1.1 200 OKContent-Type: text/html; charset="utf-8"Content-Length: nnnn

<html>…</html>

Richiesta

Risposta

A.A. 2005/2006 Basi di Dati e Laboratorio 12

Il metodo POST

• Consente la formulazione sia di un messaggio di richiesta che di un messaggio di risposta

• Non vi sono limiti di dimensione e i parametri sono specificati nel corpo del messaggio di richiesta

Page 5: Laboratorio Di  Basi Di  Dati 05  Architettura Del  Web

5

A.A. 2005/2006 Basi di Dati e Laboratorio 13

Richieste con POST

POST /Pagina HTTP/1.1Host: nome.dominio.orgContent-Type: text/html; charset="utf-8"Content-Length: nnnn

Parametro = Valore…

A.A. 2005/2006 Basi di Dati e Laboratorio 14

Risposte HTTP

• Tutto è andato bene…

HTTP/1.1 200 OKDate: Wed, 03 Dec 2003 03:57:31 GMTServer: Apache/1.3.27 (Darwin) PHP/4.2.3Content-Location: index.html.enLast-Modified: Wed, 18 Jul 2001 23:44:21 Content-Length: 1456Content-Type: text/htmlContent-Language: en

<html>…

</html>

A.A. 2005/2006 Basi di Dati e Laboratorio 15

Risposte HTTP

• Un errore, la pagina richiesta non èpresente…

HTTP/1.1 404 Not FoundDate: Wed, 03 Dec 2003 04:19:27 GMTServer: Apache/1.3.27 (Darwin) PHP/4.2.3Content-Type: text/html; charset=iso-8859-1

<html><!--pagina associata all’errore-->

</html>

Page 6: Laboratorio Di  Basi Di  Dati 05  Architettura Del  Web

6

A.A. 2005/2006 Basi di Dati e Laboratorio 16

Risposte HTTP

• …oppure la richiesta era formulata male

HTTP/1.1 400 Bad RequestDate: Wed, 03 Dec 2003 04:18:18 GMTServer: Apache/1.3.27 (Darwin) PHP/4.2.3Connection: closeContent-Type: text/html; charset=iso-8859-1

<html><!--pagina associata all’errore-->

</html>

A.A. 2005/2006 Basi di Dati e Laboratorio 17

URL

• Universal Resource Location• Specifica l’indirizzo di una risorsa Web

nella forma:– http://host.dominio.dominio/path/risorsa

protocollo indirizzo percorso file

A.A. 2005/2006 Basi di Dati e Laboratorio 18

Parametri

• Sia il metodo GET sia il metodo POST consentono la definizione di parametri associati alla richiesta

• Sintassi GET– http://URL? par0=valore&par1=valore

• Sintassi POST– par0=valore– par1=valore

Page 7: Laboratorio Di  Basi Di  Dati 05  Architettura Del  Web

7

A.A. 2005/2006 Basi di Dati e Laboratorio 19

Risoluzione della richiesta

HTTP Server

http://127.0.0.1/cartella1/index.php

http://127.0.0.1/cartella0/cartella1/index.php

File System

HTTP ServerRoot Directory (/) Index.php

Cartella0

Cartella1

HTTP/1.1 200 OK

HTTP/1.1 404 Not Found

A.A. 2005/2006 Basi di Dati e Laboratorio 20

Assenza di stati

• Fra le diverse richieste di risorse che compongono una transazione Web non viene mai conservata alcuna informazione sullo stato di esecuzione

• Inoltre le connessioni non sono continue• Senza un’ulteriore richiesta di una pagina

non vi è alcun aggiornamento sui suoi contenuti

A.A. 2005/2006 Basi di Dati e Laboratorio 21

Browser

• I browser svolgono molti compiti• Essi però nascono come client HTTP

capaci di interpretare e visualizzare codice HTML ricevuto da un server HTTP

• Spesso sono utilizzati come file manager o per visualizzare contenuti locali

• Fra la visualizzazione di pagine Web fornite da un server e pagine locali vi ètuttavia una significativa differenza

Page 8: Laboratorio Di  Basi Di  Dati 05  Architettura Del  Web

8

A.A. 2005/2006 Basi di Dati e Laboratorio 22

Browser

• La maggior parte dei browser “nasconde”alcuni aspetti della comunicazione– Il protocollo di default è HTTP anche se non

viene specificato– La porta di comunicazione è la 80 anche se

non specificato• I server HTTP hanno dei default per

quanto riguarda ad esempio i nomi delle pagine di indice di una directory

A.A. 2005/2006 Basi di Dati e Laboratorio 23

HTML

• Linguaggio di marcatura derivato da SGML• Ha l’obiettivo di definire l’aspetto che un

browser dovrà dare alla presentazione di una pagina Web

• Permette la definizione di link ipertestuali• Lo stile degli elementi è dissociato dagli

elementi stessi attraverso fogli di stile CSS

A.A. 2005/2006 Basi di Dati e Laboratorio 24

HTML - un esempio

<html><head>

link a stile.css</head><body>

…<p class=“txt”>testo</p>

</body></html>

.txt{color:#ff9900;}

index.html

stile.css

Page 9: Laboratorio Di  Basi Di  Dati 05  Architettura Del  Web

9

A.A. 2005/2006 Basi di Dati e Laboratorio 25

XML

• Metalinguaggio di marcatura orientato al contenuto e derivato da SGML

• Permette di definire propri tag e lo schema del proprio linguaggio purché:– Gli elementi siano sempre parte di un nodo

padre– Non vi siano sovrapposizioni– Gli elementi abbiano sempre una chiusura

A.A. 2005/2006 Basi di Dati e Laboratorio 26

XML

• XML non implica una formattazione da parte di un browser

• Per ottenere una visualizzazione occorre associare un foglio di stile (XSL) o una trasformazione del documento (XSLT)

• XML e i linguaggi della famiglia XML per la propria flessibilità sono uno standard accettato per la trasmissione di documenti

A.A. 2005/2006 Basi di Dati e Laboratorio 27

Un possibile uso di XML

Trasformazione XSLT

HTML

XML

WML

HTML

Page 10: Laboratorio Di  Basi Di  Dati 05  Architettura Del  Web

10

A.A. 2005/2006 Basi di Dati e Laboratorio 28

Il Web dinamico

• Le pagine Web non contengono solo istruzioni HTML o XML per il browser ma istruzioni di un linguaggio di programmazione interpretate (nel caso di script lato server) ma moduli invocati dal server HTTP

• Tali istruzioni consentono anche l’accesso alle risorse lato server, tra le quali sono fondamentali i database

A.A. 2005/2006 Basi di Dati e Laboratorio 29

Web dinamico

ClientHTTP Server

DBMS Server

Interprete del linguaggio di

scripting(ASP, PHP, …)

La pagina contiene script lato server?

Gli script richiedono connessioni al DBMS?

Richiesta HTTP

NO

NOSì

A.A. 2005/2006 Basi di Dati e Laboratorio 30

Pagine dinamiche

<html>…<body><?Istruzioni di scripting?></body></html>

Lato server

<html>…<body>Risultato dell’elaborazione</body></html>

Lato client

Page 11: Laboratorio Di  Basi Di  Dati 05  Architettura Del  Web

11

A.A. 2005/2006 Basi di Dati e Laboratorio 31

Tecnologie del Web

Client

HTTP Server

DBMS Server