Laboratorio Di Basi Di Dati 05 Architettura Del Web
Click here to load reader
-
Upload
guestbe916c -
Category
Technology
-
view
666 -
download
2
Transcript of 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
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
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
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
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>
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
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
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
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
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ì
Sì
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
11
A.A. 2005/2006 Basi di Dati e Laboratorio 31
Tecnologie del Web
Client
HTTP Server
DBMS Server