Basi di dati e web Introduzione

Schema
2
Basi di dati e web: nozioni generali
Basi di Dati-IX
HTML
Basi del linguaggio PHP
Corso di Laurea in Informatica
PHP e API MySQL
Anno Accademico 2013/2014
Interazione con l’utente: forms e gestori
Mantenimento dello stato: sessioni e cookies
Paolo Baldan
Autenticazione
[email protected]
http://www.math.unipd.it/~baldan
BD e WEB
Corso di Basi di Dati
Friday, May 30, 2014
BD e web
Corso di Basi di Dati
Friday, May 30, 2014
Basi di dati e web
4
Applicazione web
fornisce un servizio all’utente per mezzo dell’infrastruttura WEB
Basi di dati e web
Introduzione
l’utente interagisce con un sito web
le pagine sono costruite dinamicamente, sulla base dell’interazione con
l’utente (siti dinamici)
le informazioni rilevanti per l’applicazione memorizzate in un database
Es:. prenotazione on-line, commercio elettronico, home-banking, ....
BD e web
Friday, May 30, 2014
Friday, May 30, 2014
Corso di Basi di Dati
Architettura Client-Server
5
Protocollo HTTP
6
Per una applicazione web
occorre aggiungere
potere di calcolo e
memorizzazione dati
a questo modello
BD e web
Corso di Basi di Dati
Friday, May 30, 2014
BD e web
Corso di Basi di Dati
Friday, May 30, 2014
Architettura di una applicazione WEB
7
Client-side vs. Server side
8
CLIENT
Richiesta
utente
Internet
tecnologia server side:
peso della computazione sul
server
template
+
Pagina
HTML
SERVER
tecnologia client side:
peso della computazione sul
client
dati
Web server
+ tecnologia
server-side
tecnologia ibrida
(soluzione tipica)
BD e web
Friday, May 30, 2014
Corso di Basi di Dati
BD e web
Friday, May 30, 2014
Corso di Basi di Dati
Tecnologia Client-Side
9
Computazione sul client:
Tecnologia Server-Side
10
Computazione sul server
- maggior flessibilità e capacità computazionale
Script interpretati dal browser, immersi nel codice HTML (es. Javascript)
- accesso e memorizzazione dei dati
- Tipicamente operazioni semplici e in stretta interazione con l’utente
-
controllo delle form
-
gestione eventi (es. rollover)
- interattività non immediata (occorre che l’informazione arrivi al server !)
Il server fa ben più che restituire pagine HTML/script già esistenti!
- pagine dinamiche: create e composte dinamicamente dal server web
Eseguibili scaricati (es. Applet)
- limitazioni dovute a problemi di sicurezza
- capacità di accedere a dati sul server (es. DB)
-
utente invia dati (es., tramite una form) al server
-
il server li elabora
-
restituisce il risultato come documento HTML:
- necessità di componenti aggiuntive per l’elaborazione, capaci di costruire
Criticità:
pagine su richiesta, sulla base delle richieste e dei dati
dipendenza dal browser
BD e web
Corso di Basi di Dati
Friday, May 30, 2014
BD e web
Corso di Basi di Dati
Friday, May 30, 2014
Architettura Server-Side
11
Tecnologia Server-Side: CGI e script embedded
12
CGI (common gateway interface)
Eventuali
parametri
protocollo per interfacciare un web server con un’applicazione esterna
il WS invoca, su richiesta del client, un programma (che risiede in opportune
Elaborazione
cartelle)
SELECT...
- compilato
- intepretato da un interprete che risiede sul server
il programma ritorna una pagina HTML
Parte statica
Parte dinamica
Perl, PHP, ma anche Java, C++, ...
CGI
BD e web
Friday, May 30, 2014
Corso di Basi di Dati
BD e web
Friday, May 30, 2014
Corso di Basi di Dati
Tecnologia server side: CGI e script embedded
13
Scripting
14
Script (embedded)
il web server include come modulo un motore capace di interpretare il
Browser web
Richiede uno script
linguaggio di scripting
Server web
es. PHP (PHP Hypertext Preprocessor), ASP (Active server pages), Java
Server Pages (JSP), ...
Individua
lo script
Browser web
Fornisce la pagina HTML
Genera
la pagina
HTML
Parser del
linguaggio
BD e web
Corso di Basi di Dati
Friday, May 30, 2014
Analizza
lo script
BD e web
Corso di Basi di Dati
Friday, May 30, 2014
Esempio: form HTML
15
Esempio form - Codice Perl
16
Comunicazione tra la pagina contenente la form e componente lato server che
In questo caso il “programma” indicato dalla action è un programma PERL
gestisce il contenuto della form spedito dall’utente.
(ad es. mioperl.pl)
Questa componente e’ diversa a seconda della tecnologia usata
Parametri
<form name=”esempio” action=“programma”
method=get|post>
<input type=”text” name=”username”>
<input type=”radio” name=”color”
value=“Rosso”>
...
<input type=”submit”>
BD e web
Friday, May 30, 2014
#!/usr/bin/perl
use CGI;
$q = new CGI;
$color = $q->param('color');
$username = $q->param('username');
print $q->header();
print $q->start_html(-title => 'CGI');
print "Il nome è: $username<br>\n";
print "Il radio button selezionato è: $color<br>";
print $q->end_html;
Corso di Basi di Dati
BD e web
Friday, May 30, 2014
Corso di Basi di Dati
Esempio form - Codice PHP
17
Esempio form - Codice ASP
18
In questo caso il “programma” indicato dalla action è una pagina PHP (ed es.
In questo caso il “programma” indicato dalla action è una pagina ASP (ed es.
miapagina.php)
miapagina.asp)
<html>
<head><title>PHP</title></head>
<body>
Il nome è: <?php $_GET["username"]; ?>
Il radio button selez. è: <?php $_GET["color"]; ?>
</body>
</HTML>
BD e web
Corso di Basi di Dati
Friday, May 30, 2014
<html>
<head><title>ASP</title></head>
<body>
Il nome è: <% request.querystring(‘username’) %>
Il radio button selezionato è:<%
request.querystring(‘color’) %>
</body>
</html>
BD e web
Corso di Basi di Dati
Friday, May 30, 2014
Application server
19
Non solo un HTTP server, integra moduli relativi a componenti server-side
Noi ...
20
Noi considereremo
Apache
Ambiente per costruire applicazioni web
MySQL
Apache Web server
IIS
...
Componenti
aggiuntive
BD e web
Friday, May 30, 2014
Motore
dinamico
lato server
PHP (modulo di Apache)
PHP
ASP
JSP
...
DB
...
L’installazione integrata delle tre componenti non è sempre agevole
Così comune che in rete si trovano vari kit di installazione integrati (consigliati)
MySQL
LAMP (Linux, Apache, MySQL, PHP)
Access
WAMP, MAMP, XAMPP, ...
SQL Server
Corso di Basi di Dati
BD e web
Friday, May 30, 2014
Corso di Basi di Dati