Laboratorio Di Basi Di Dati 05 Architettura Del Web
1. Corso di Basi di Dati e Laboratorio
Introduzione al Web
Alfio Ferrara - Stefano Montanelli
A.A. 2005/2006 Basi di Dati e Laboratorio 1
Architettura del Web
• Personaggi principali
– HTTP
– Web server
– Browser
– HTML
– CSS
– XML
A.A. 2005/2006 Basi di Dati e Laboratorio 2
Architettura del Web
• I protagonisti del Web dinamico
– DBMS server
– Linguaggi di scripting lato server
– Linguaggi di scripting lato client
– Plugin
A.A. 2005/2006 Basi di Dati e Laboratorio 3
1
2. Architettura del Web
• I volti nuovi
– SOAP
– WSDL
– XSLT
– RDF
– OWL
–…
A.A. 2005/2006 Basi di Dati e Laboratorio 4
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 5
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
A.A. 2005/2006 Basi di Dati e Laboratorio 6
2
3. Il Web statico
Richiesta
HTTP
URL
HTTP Server
Risposta
HTTP
Client Binari Testo
A.A. 2005/2006 Basi di Dati e Laboratorio 7
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 8
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
A.A. 2005/2006 Basi di Dati e Laboratorio 9
3
4. 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 10
Il metodo GET
GET URI?parametro=valore HTTP/1.1
Host: nome.dominio.org Richiesta
Accept: text/html
HTTP/1.1 200 OK
Content-Type: text/html; charset=quot;utf-8quot;
Content-Length: nnnn
Risposta
<html>
…
</html>
A.A. 2005/2006 Basi di Dati e Laboratorio 11
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
A.A. 2005/2006 Basi di Dati e Laboratorio 12
4
5. Richieste con POST
POST /Pagina HTTP/1.1
Host: nome.dominio.org
Content-Type: text/html; charset=quot;utf-8quot;
Content-Length: nnnn
Parametro = Valore
…
A.A. 2005/2006 Basi di Dati e Laboratorio 13
Risposte HTTP
• Tutto è andato bene…
HTTP/1.1 200 OK
Date: Wed, 03 Dec 2003 03:57:31 GMT
Server: Apache/1.3.27 (Darwin) PHP/4.2.3
Content-Location: index.html.en
Last-Modified: Wed, 18 Jul 2001 23:44:21 Content-Length: 1456
Content-Type: text/html
Content-Language: en
<html>
…
</html>
A.A. 2005/2006 Basi di Dati e Laboratorio 14
Risposte HTTP
• Un errore, la pagina richiesta non è
presente…
HTTP/1.1 404 Not Found
Date: Wed, 03 Dec 2003 04:19:27 GMT
Server: Apache/1.3.27 (Darwin) PHP/4.2.3
Content-Type: text/html; charset=iso-8859-1
<html>
<!--pagina associata all’errore-->
</html>
A.A. 2005/2006 Basi di Dati e Laboratorio 15
5
6. Risposte HTTP
• …oppure la richiesta era formulata male
HTTP/1.1 400 Bad Request
Date: Wed, 03 Dec 2003 04:18:18 GMT
Server: Apache/1.3.27 (Darwin) PHP/4.2.3
Connection: close
Content-Type: text/html; charset=iso-8859-1
<html>
<!--pagina associata all’errore-->
</html>
A.A. 2005/2006 Basi di Dati e Laboratorio 16
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 17
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
A.A. 2005/2006 Basi di Dati e Laboratorio 18
6
7. Risoluzione della richiesta
http://127.0.0.1/cartella0/cartella1/index.php
http://127.0.0.1/cartella1/index.php
HTTP/1.1 404 Not Found
HTTP/1.1 200 OK
HTTP Server
Cartella0
File System
Cartella1
HTTP Server
Root Directory (/)
Index.php
A.A. 2005/2006 Basi di Dati e Laboratorio 19
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 20
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
A.A. 2005/2006 Basi di Dati e Laboratorio 21
7
8. 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 22
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 23
HTML - un esempio
<html> index.html
<head>
link a stile.css
</head>
<body>
…
<p class=“txt”>testo</p>
</body>
</html>
stile.css
.txt{color:#ff9900;}
A.A. 2005/2006 Basi di Dati e Laboratorio 24
8
9. 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 25
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 26
Un possibile uso di XML
HTML
WML
XML
HTML
Trasformazione XSLT
A.A. 2005/2006 Basi di Dati e Laboratorio 27
9
10. 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 28
Web dinamico
Richiesta HTTP HTTP Server
Client
La pagina contiene script
NO
lato server?
NO
Gli script richiedono Sì
Sì
connessioni al DBMS?
Interprete del
linguaggio di
scripting
(ASP, PHP, …)
DBMS Server
A.A. 2005/2006 Basi di Dati e Laboratorio 29
Pagine dinamiche
Lato server
<html>
…
<body>
<? Lato client
Istruzioni di scripting
?> <html>
</body> …
</html> <body>
Risultato dell’elaborazione
</body>
</html>
A.A. 2005/2006 Basi di Dati e Laboratorio 30
10
11. Tecnologie del Web
HTTP Server
DBMS Server
Client
A.A. 2005/2006 Basi di Dati e Laboratorio 31
11