SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
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
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
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
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
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
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
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
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
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
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
Tecnologie del Web




                                      HTTP Server



                                               DBMS Server



                  Client

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




                                                                  11

Weitere ähnliche Inhalte

Ähnlich wie Laboratorio Di Basi Di Dati 05 Architettura Del Web

Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
Laboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato ClientLaboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato Client
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Clientguestbe916c
 
Lezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in JavaLezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in JavaAndrea Della Corte
 
Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileLe Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileI.S.I.S. "Antonio Serra" - Napoli
 
Creare API pubbliche, come evitare gli errori comuni
 Creare API pubbliche, come evitare gli errori comuni Creare API pubbliche, come evitare gli errori comuni
Creare API pubbliche, come evitare gli errori comuniAndrea Dottor
 
REST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleREST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleMarco Breveglieri
 
Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Fulvio Corno
 
Come funziona la navigazione Web
Come funziona la navigazione WebCome funziona la navigazione Web
Come funziona la navigazione Webextrategy
 
Introduzione a Internet
Introduzione a InternetIntroduzione a Internet
Introduzione a Internetdadahtml
 
5. Applicazioni Web e CMS
5. Applicazioni Web e CMS5. Applicazioni Web e CMS
5. Applicazioni Web e CMSRoberto Polillo
 
Php concetti chiave di base
Php concetti chiave di basePhp concetti chiave di base
Php concetti chiave di baseWalter Liguori
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Whymca
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDLuca Masini
 
Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...
Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...
Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...Simone Onofri
 
corso web developer - Introduzione al web
corso web developer - Introduzione al webcorso web developer - Introduzione al web
corso web developer - Introduzione al webRiccardo Piccioni
 

Ähnlich wie Laboratorio Di Basi Di Dati 05 Architettura Del Web (20)

Net core base
Net core baseNet core base
Net core base
 
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
Laboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato ClientLaboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato Client
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
 
Lezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in JavaLezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in Java
 
Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileLe Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
 
Creare API pubbliche, come evitare gli errori comuni
 Creare API pubbliche, come evitare gli errori comuni Creare API pubbliche, come evitare gli errori comuni
Creare API pubbliche, come evitare gli errori comuni
 
REST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleREST API fantastiche e dove trovarle
REST API fantastiche e dove trovarle
 
Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...
 
Web api 2.0
Web api 2.0Web api 2.0
Web api 2.0
 
Come funziona la navigazione Web
Come funziona la navigazione WebCome funziona la navigazione Web
Come funziona la navigazione Web
 
Asp net (versione 1 e 2)
Asp net (versione 1 e 2)Asp net (versione 1 e 2)
Asp net (versione 1 e 2)
 
Introduzione a Internet
Introduzione a InternetIntroduzione a Internet
Introduzione a Internet
 
5. Applicazioni Web e CMS
5. Applicazioni Web e CMS5. Applicazioni Web e CMS
5. Applicazioni Web e CMS
 
Php concetti chiave di base
Php concetti chiave di basePhp concetti chiave di base
Php concetti chiave di base
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROID
 
Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...
Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...
Gli HTTP Security Header e altri elementi da sapere su HTTP in un Web Applica...
 
corso web developer - Introduzione al web
corso web developer - Introduzione al webcorso web developer - Introduzione al web
corso web developer - Introduzione al web
 
Lamp Ld2008
Lamp Ld2008Lamp Ld2008
Lamp Ld2008
 
Ajax - Presente e futuro delle applicazioni web
Ajax - Presente e futuro delle applicazioni webAjax - Presente e futuro delle applicazioni web
Ajax - Presente e futuro delle applicazioni web
 
Oai Data Adapter
Oai Data AdapterOai Data Adapter
Oai Data Adapter
 

Mehr von guestbe916c

Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
Laboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M LLaboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M L
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M Lguestbe916c
 
Corso Di Basi Di Dati 09 Modelli Controllo
Corso Di  Basi Di  Dati 09  Modelli ControlloCorso Di  Basi Di  Dati 09  Modelli Controllo
Corso Di Basi Di Dati 09 Modelli Controlloguestbe916c
 
Esercitazioni 02 S Q L
Esercitazioni 02  S Q LEsercitazioni 02  S Q L
Esercitazioni 02 S Q Lguestbe916c
 
Esercitazioni 01 Algebra Relazionale
Esercitazioni 01  Algebra RelazionaleEsercitazioni 01  Algebra Relazionale
Esercitazioni 01 Algebra Relazionaleguestbe916c
 
Corso Di Basi Di Dati 10 Transazioni
Corso Di  Basi Di  Dati 10  TransazioniCorso Di  Basi Di  Dati 10  Transazioni
Corso Di Basi Di Dati 10 Transazioniguestbe916c
 
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
Laboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q LLaboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q L
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q Lguestbe916c
 
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettuale
Corso Di  Basi Di  Dati 06  Esercizi Di Progettazione ConcettualeCorso Di  Basi Di  Dati 06  Esercizi Di Progettazione Concettuale
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettualeguestbe916c
 
Corso Di Basi Di Dati 03 Progettazione Concettuale
Corso Di  Basi Di  Dati 03  Progettazione ConcettualeCorso Di  Basi Di  Dati 03  Progettazione Concettuale
Corso Di Basi Di Dati 03 Progettazione Concettualeguestbe916c
 
Corso Di Basi Di Dati 05 Normalizzazione
Corso Di  Basi Di  Dati 05  NormalizzazioneCorso Di  Basi Di  Dati 05  Normalizzazione
Corso Di Basi Di Dati 05 Normalizzazioneguestbe916c
 
Corso Di Basi Di Dati 04 Progettazione Logica
Corso Di  Basi Di  Dati 04  Progettazione LogicaCorso Di  Basi Di  Dati 04  Progettazione Logica
Corso Di Basi Di Dati 04 Progettazione Logicaguestbe916c
 
Corso Di Basi Di Dati 02 S Q L D M L
Corso Di  Basi Di  Dati 02  S Q L  D M LCorso Di  Basi Di  Dati 02  S Q L  D M L
Corso Di Basi Di Dati 02 S Q L D M Lguestbe916c
 
Corso Di Basi Di Dati 02 S Q L Query
Corso Di  Basi Di  Dati 02  S Q L   QueryCorso Di  Basi Di  Dati 02  S Q L   Query
Corso Di Basi Di Dati 02 S Q L Queryguestbe916c
 
Esercitazioni 03 Algebra + S Q L
Esercitazioni 03  Algebra +  S Q LEsercitazioni 03  Algebra +  S Q L
Esercitazioni 03 Algebra + S Q Lguestbe916c
 
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
Corso Di  Basi Di  Dati 01  Algebra Relazionale   OttimizzazioniCorso Di  Basi Di  Dati 01  Algebra Relazionale   Ottimizzazioni
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioniguestbe916c
 
Esercitazioni 04 Progettazione Concettuale E Logica
Esercitazioni 04  Progettazione Concettuale E LogicaEsercitazioni 04  Progettazione Concettuale E Logica
Esercitazioni 04 Progettazione Concettuale E Logicaguestbe916c
 
Corso Di Basi Di Dati 08 Protezione Dei Dati
Corso Di  Basi Di  Dati 08  Protezione Dei DatiCorso Di  Basi Di  Dati 08  Protezione Dei Dati
Corso Di Basi Di Dati 08 Protezione Dei Datiguestbe916c
 
04 Progettazione Logica
04  Progettazione Logica04  Progettazione Logica
04 Progettazione Logicaguestbe916c
 
06 Normalizzazione
06  Normalizzazione06  Normalizzazione
06 Normalizzazioneguestbe916c
 

Mehr von guestbe916c (20)

Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
Laboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M LLaboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M L
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
 
Corso Di Basi Di Dati 09 Modelli Controllo
Corso Di  Basi Di  Dati 09  Modelli ControlloCorso Di  Basi Di  Dati 09  Modelli Controllo
Corso Di Basi Di Dati 09 Modelli Controllo
 
Esercitazioni 02 S Q L
Esercitazioni 02  S Q LEsercitazioni 02  S Q L
Esercitazioni 02 S Q L
 
Esercitazioni 01 Algebra Relazionale
Esercitazioni 01  Algebra RelazionaleEsercitazioni 01  Algebra Relazionale
Esercitazioni 01 Algebra Relazionale
 
Corso Di Basi Di Dati 10 Transazioni
Corso Di  Basi Di  Dati 10  TransazioniCorso Di  Basi Di  Dati 10  Transazioni
Corso Di Basi Di Dati 10 Transazioni
 
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
Laboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q LLaboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q L
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
 
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettuale
Corso Di  Basi Di  Dati 06  Esercizi Di Progettazione ConcettualeCorso Di  Basi Di  Dati 06  Esercizi Di Progettazione Concettuale
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettuale
 
Corso Di Basi Di Dati 03 Progettazione Concettuale
Corso Di  Basi Di  Dati 03  Progettazione ConcettualeCorso Di  Basi Di  Dati 03  Progettazione Concettuale
Corso Di Basi Di Dati 03 Progettazione Concettuale
 
Corso Di Basi Di Dati 05 Normalizzazione
Corso Di  Basi Di  Dati 05  NormalizzazioneCorso Di  Basi Di  Dati 05  Normalizzazione
Corso Di Basi Di Dati 05 Normalizzazione
 
Corso Di Basi Di Dati 04 Progettazione Logica
Corso Di  Basi Di  Dati 04  Progettazione LogicaCorso Di  Basi Di  Dati 04  Progettazione Logica
Corso Di Basi Di Dati 04 Progettazione Logica
 
Corso Di Basi Di Dati 02 S Q L D M L
Corso Di  Basi Di  Dati 02  S Q L  D M LCorso Di  Basi Di  Dati 02  S Q L  D M L
Corso Di Basi Di Dati 02 S Q L D M L
 
Corso Di Basi Di Dati 02 S Q L Query
Corso Di  Basi Di  Dati 02  S Q L   QueryCorso Di  Basi Di  Dati 02  S Q L   Query
Corso Di Basi Di Dati 02 S Q L Query
 
Algebra
AlgebraAlgebra
Algebra
 
Esercitazioni 03 Algebra + S Q L
Esercitazioni 03  Algebra +  S Q LEsercitazioni 03  Algebra +  S Q L
Esercitazioni 03 Algebra + S Q L
 
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
Corso Di  Basi Di  Dati 01  Algebra Relazionale   OttimizzazioniCorso Di  Basi Di  Dati 01  Algebra Relazionale   Ottimizzazioni
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
 
S Q L
S Q LS Q L
S Q L
 
Esercitazioni 04 Progettazione Concettuale E Logica
Esercitazioni 04  Progettazione Concettuale E LogicaEsercitazioni 04  Progettazione Concettuale E Logica
Esercitazioni 04 Progettazione Concettuale E Logica
 
Corso Di Basi Di Dati 08 Protezione Dei Dati
Corso Di  Basi Di  Dati 08  Protezione Dei DatiCorso Di  Basi Di  Dati 08  Protezione Dei Dati
Corso Di Basi Di Dati 08 Protezione Dei Dati
 
04 Progettazione Logica
04  Progettazione Logica04  Progettazione Logica
04 Progettazione Logica
 
06 Normalizzazione
06  Normalizzazione06  Normalizzazione
06 Normalizzazione
 

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