Tecnologie lato Server:
i Server Web
Stefano Clemente
[email protected]
© 2005 Stefano Clemente
I lucidi sono in parte realizzati con materiale tratto dal libro di testo adottato tradotto in italiano:
© 2002 Prentice Hall
H. M. Deitel, P. J. Deitel, T. R. Nieto
Internet & World Wide Web – How To Program (Second Edition)
Riferimenti bibliografici
• H. M. Deitel, P. J. Deitel, T. R. Nieto
Internet & World Wide Web – How
To Program (Second Edition)
ed. Prentice Hall 2002
Capitolo 21
25 Ottobre 2005
Stefano Clemente
2
Introduzione
• Web Server
− Software specializzato nel rispondere alle richieste
provenienti dai client (browser) attraverso l’invio di
risorse (pagine web)
• Il client richiede attraverso URI (URL) un documento del
server Web
• Il server mappa la URI in un documento che si trova
− nel suo file-system
− nella sua rete locale
e lo restituisce al client
• La comunicazione tra client e server avviene per mezzo del
protocollo HTTP
− Esamineremo due web server
• Internet Information Server (IIS) di Microsoft
• Apache di Apache Software Foundation (open source)
25 Ottobre 2005
Stefano Clemente
3
Tipi di richieste HTTP
• Metodi di richiesta HTTP
− GET
• richiesta di un documento al Web Server
− POST
• invio dei dati che l’utente del client ha immesso nella form
• GET può inviare contenuti di una form come parte della URL per
recuperare una particolare risorsa dal server web
− http://www.google.it/advanced_search?hl=it
in cui la parte seguente il punto interrogativo (nella forma
<query>=<query_utente>) rappresenta la query dell’utente
− In una GET la lunghezza massima di <query_utente> è di 1024
caratteri; se eccede questo limite si usa il metodo POST
• POST è usata anche per modificare i contenuti del web server
(es. forum)
• I browser solitamente fanno cache delle pagine web per
velocizzare l’accesso a queste in caso debbano essere ricaricate
− non vengono messe in cache le pagine relative a richieste POST
− vengono messe in cache le pagine relative a richieste GET
25 Ottobre 2005
Stefano Clemente
4
Architettura di sistema
• I web server fanno parte dell’architettura
client-server a n livelli
− ogni livello corrisponde a una specifica funzionalità
− i livelli possono essere su macchine separate o sulla
stessa macchina
• Es. Architettura a tre livelli
25 Ottobre 2005
Stefano Clemente
5
Architettura di sistema
• Database Server – Livello Informazione
− Gestisce i dati utilizzati dalle applicazioni
− Memorizza i dati in Relational Database
Management System (RDBMS)
• Web Server – Livello Medio
− Realizza la business logic e la presentation logic
− Controlla le interazioni tra i client e i dati
dell’applicativo
− Agisce da intermediario tra gli altri due livelli
25 Ottobre 2005
Stefano Clemente
6
Architettura di sistema
• Web Server – Livello Medio (2)
− Controller logic
• Elabora le richieste dei client
• Reperisce i dati dal DB
− Presentation logic
• Elabora i dati del livello informazione
• Presenta i dati al client
− Business logic
• Rafforza le regole
− Decide in che modo i client possono accedere ai dati e in che
modo l’applicazione deve elaborarli
• Assicura la validità dei dati prima di aggiornare il DB
25 Ottobre 2005
Stefano Clemente
7
Architettura di sistema
• Client – Livello Client
− Interfaccia utente dell’applicativo
− Gli utenti interagiscono con l’applicazione
attraverso l’interfaccia utente
− Interagisce con il livello intermedio per fare
richieste e per reperire dati sul DB
− Mostra i dati all’utente
25 Ottobre 2005
Stefano Clemente
8
Script lato client o lato server?
• Gli script lato client
− servono per la validazione dei dati immessi dagli utenti
− possono accedere al browser per utilizzare caratteristiche
specifiche dello stesso e manipolare i documenti
− migliorano le pagine web con ActiveX®, applets, etc.
• La validazione eseguita sul client
− riduce il numero delle richieste fatte al server
• Limiti degli script lato client
− sono dipendenti dal browser
− visibili agli utenti attraverso la visualizzazione del sorgente
HTML della pagina
• JavaScript è la tecnologia più popolare
25 Ottobre 2005
Stefano Clemente
9
Script lato client o lato server?
• Script lato server
− Forniscono una maggiore flessibilità nella scrittura
dei programmi
− Generano risposte personalizzate per i client
− Hanno possibilità maggiori rispetto agli script lato
client
• gli script lato server possono accedere al file system del
server
• gli script lato client non possono accedere al file system del
client
− Possono accedere a software sul server per
estendere le proprie funzionalità
• ActiveX – Microsoft Internet Information Server
• Moduli – Apache
25 Ottobre 2005
Stefano Clemente
10
Microsoft Internet Information
Server (IIS): Installazione
25 Ottobre 2005
Stefano Clemente
11
Microsoft Internet Information
Server (IIS): Installazione
25 Ottobre 2005
Stefano Clemente
12
Microsoft Internet Information
Server (IIS): Installazione
25 Ottobre 2005
Stefano Clemente
13
Microsoft Internet Information
Server (IIS): Installazione
25 Ottobre 2005
Stefano Clemente
14
25 Ottobre 2005
Stefano Clemente
15
Apache: Installazione
25 Ottobre 2005
Stefano Clemente
16
Apache: Installazione
25 Ottobre 2005
Stefano Clemente
17
Apache: Installazione
25 Ottobre 2005
Stefano Clemente
18
Apache: Installazione
25 Ottobre 2005
Stefano Clemente
19
Apache: Installazione
25 Ottobre 2005
Stefano Clemente
20
Apache: Installazione
25 Ottobre 2005
Stefano Clemente
21
Apache: Installazione
25 Ottobre 2005
Stefano Clemente
22
Apache: Installazione
25 Ottobre 2005
Stefano Clemente
23
Apache: Installazione
25 Ottobre 2005
Stefano Clemente
24
25 Ottobre 2005
Stefano Clemente
25
Avvio e Arresto dei Web Server
25 Ottobre 2005
Stefano Clemente
26
25 Ottobre 2005
Stefano Clemente
27
25 Ottobre 2005
Stefano Clemente
28
Avvio e Arresto di IIS
25 Ottobre 2005
Stefano Clemente
29
Avvio e Arresto di Apache
Se non si fosse riusciti a installare Apache come servizio bisogna eseguire
in cmd il comando
"C:\Programmi\Apache Group\Apache2\bin\Apache.exe" -k install
25 Ottobre 2005
Stefano Clemente
30
La struttura delle directory di
default: IIS
25 Ottobre 2005
Stefano Clemente
31
La struttura delle directory di
default: Apache
25 Ottobre 2005
Stefano Clemente
32
Configurazione dei Web Server
• Per studiare il modo di configurare i due web server creeremo
una struttura di directory comune ai due web server
− Creeremo la directory web sotto c:\ contenente
• html
• cgi-bin
• icons
sulla falsa riga della struttura di Apache
e il file test.html sotto c:\web\html
• Poiché entrambi sono in ascolto sulla porta 80, non è possibile
avviarli contemporaneamente a meno di ridefinire la porta di
ascolto; assegneremo
− La porta 81 a IIS
− La porta 82 a Apache
In questo modo riusciremo a distinguere anche gli esempi che si
riferiscono all’uno o all’altro web server
25 Ottobre 2005
Stefano Clemente
33
Configurazione di IIS
25 Ottobre 2005
Stefano Clemente
34
Configurazione di IIS
25 Ottobre 2005
Stefano Clemente
35
Configurazione di IIS
25 Ottobre 2005
Stefano Clemente
36
Configurazione di IIS
• La versione di IIS per Windows XP è ridotta e
non consente la definizione di più siti sullo
stesso server
− è possibile sulle versioni server di Windows
• Modifichiamo la porta settando la porta 81
• Modifichiamo la home-directory di default in
c:\web\html
• Per modificare le proprietà del sito
− cliccare con il tasto destro del mouse sul sito
predefinito
− dal menu pop-up scegliere “Proprietà”
25 Ottobre 2005
Stefano Clemente
37
Configurazione di IIS
25 Ottobre 2005
Stefano Clemente
38
Configurazione di IIS
25 Ottobre 2005
Stefano Clemente
39
Configurazione di IIS
25 Ottobre 2005
Stefano Clemente
40
Configurazione di IIS
25 Ottobre 2005
Stefano Clemente
41
Configurazione di IIS
25 Ottobre 2005
Stefano Clemente
42
Configurazione di IIS
• Una volta avviato IIS….
25 Ottobre 2005
Stefano Clemente
43
Configurazione di Apache
• Per Apache non esiste un tool grafico, ma un
file di configurazione da editare a mano
− "C:\Programmi\Apache
Group\Apache2\conf\httpd.conf“
− Si possono usare editor come “Blocco Note” di
windows
− Cercare le stringhe da modificare con la funzione di
ricerca (in “Blocco Note”: menu Modifica → Trova
• Modifiche a httpd.conf
−
−
−
−
−
Listen 82
ServerName <fully_qualified_domain_name>:82
DocumentRoot "C:/web/html“
<Directory " C:/web/html">
DirectoryIndex test.html
25 Ottobre 2005
Stefano Clemente
44
Configurazione di Apache
25 Ottobre 2005
Stefano Clemente
45
Configurazione di Apache
• Una volta avviato Apache….
25 Ottobre 2005
Stefano Clemente
46
Le altre directory
• Nelle configurazioni viste finora, non c’è alcun
accenno alle altre due directory di c:\web
• Secondo le configurazioni attuali sui due web
server possiamo accedere solo ai documenti e
directory contenute in c:\web\html; se infatti
copiassimo test.html anche sotto le altre due
directory…..
25 Ottobre 2005
Stefano Clemente
47
Le altre directory
IIS
Apache
25 Ottobre 2005
Stefano Clemente
48
Le altre directory: icons
• Per la directory icons i due server
restituiscono lo stesso errore
• È infatti una directory che non è situata sotto
la root directory del server (c:\web\html)
• La configurazione da eseguire sui server deve
permettere di rendere valida la URL
http://<nome_host>/icons/test.html
• Questo vuol dire
− per IIS creare una directory virtuale
− per Apache creare un alias
25 Ottobre 2005
Stefano Clemente
49
icons: configurazione di IIS
25 Ottobre 2005
Stefano Clemente
50
icons: configurazione di IIS
25 Ottobre 2005
Stefano Clemente
51
icons: configurazione di IIS
25 Ottobre 2005
Stefano Clemente
52
icons: configurazione di IIS
25 Ottobre 2005
Stefano Clemente
53
icons: configurazione di Apache
• Modifiche a httpd.conf
− Alias /icons/ "C:/web/icons/"
− <Directory "C:/web/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
• Riavvio di Apache!!!
25 Ottobre 2005
Stefano Clemente
54
Scarica

Lucidi 7