Tecnologie lato Server: i Server Web © 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) Stefano Clemente
25 Ottobre 2005Stefano Clemente2 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 2005Stefano Clemente3 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 2005Stefano Clemente4 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 − in cui la parte seguente il punto interrogativo (nella forma = ) rappresenta la query dell’utente − In una GET la lunghezza massima di è 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 2005Stefano Clemente5 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 2005Stefano Clemente6 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 2005Stefano Clemente7 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 2005Stefano Clemente8 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 2005Stefano Clemente9 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 2005Stefano Clemente10 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 2005Stefano Clemente11 Microsoft Internet Information Server (IIS): Installazione
25 Ottobre 2005Stefano Clemente12 Microsoft Internet Information Server (IIS): Installazione
25 Ottobre 2005Stefano Clemente13 Microsoft Internet Information Server (IIS): Installazione
25 Ottobre 2005Stefano Clemente14 Microsoft Internet Information Server (IIS): Installazione
25 Ottobre 2005Stefano Clemente15
25 Ottobre 2005Stefano Clemente16 Apache: Installazione
25 Ottobre 2005Stefano Clemente17 Apache: Installazione
25 Ottobre 2005Stefano Clemente18 Apache: Installazione
25 Ottobre 2005Stefano Clemente19 Apache: Installazione
25 Ottobre 2005Stefano Clemente20 Apache: Installazione
25 Ottobre 2005Stefano Clemente21 Apache: Installazione
25 Ottobre 2005Stefano Clemente22 Apache: Installazione
25 Ottobre 2005Stefano Clemente23 Apache: Installazione
25 Ottobre 2005Stefano Clemente24 Apache: Installazione
25 Ottobre 2005Stefano Clemente25
25 Ottobre 2005Stefano Clemente26 Avvio e Arresto dei Web Server
25 Ottobre 2005Stefano Clemente27
25 Ottobre 2005Stefano Clemente28
25 Ottobre 2005Stefano Clemente29 Avvio e Arresto di IIS
25 Ottobre 2005Stefano Clemente30 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 2005Stefano Clemente31 La struttura delle directory di default: IIS
25 Ottobre 2005Stefano Clemente32 La struttura delle directory di default: Apache
25 Ottobre 2005Stefano Clemente33 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 2005Stefano Clemente34 Configurazione di IIS
25 Ottobre 2005Stefano Clemente35 Configurazione di IIS
25 Ottobre 2005Stefano Clemente36 Configurazione di IIS
25 Ottobre 2005Stefano Clemente37 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 2005Stefano Clemente38 Configurazione di IIS
25 Ottobre 2005Stefano Clemente39 Configurazione di IIS
25 Ottobre 2005Stefano Clemente40 Configurazione di IIS
25 Ottobre 2005Stefano Clemente41 Configurazione di IIS
25 Ottobre 2005Stefano Clemente42 Configurazione di IIS
25 Ottobre 2005Stefano Clemente43 Configurazione di IIS Una volta avviato IIS….
25 Ottobre 2005Stefano Clemente44 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 :82 − DocumentRoot "C:/web/html“ − − DirectoryIndex test.html
25 Ottobre 2005Stefano Clemente45 Configurazione di Apache
25 Ottobre 2005Stefano Clemente46 Configurazione di Apache Una volta avviato Apache….
25 Ottobre 2005Stefano Clemente47 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 2005Stefano Clemente48 Le altre directory Apache IIS
25 Ottobre 2005Stefano Clemente49 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 /icons/test.html Questo vuol dire directory virtuale − per IIS creare una directory virtuale alias − per Apache creare un alias
25 Ottobre 2005Stefano Clemente50 icons: configurazione di IIS
25 Ottobre 2005Stefano Clemente51 icons: configurazione di IIS
25 Ottobre 2005Stefano Clemente52 icons: configurazione di IIS
25 Ottobre 2005Stefano Clemente53 icons: configurazione di IIS
25 Ottobre 2005Stefano Clemente54 icons: configurazione di Apache Modifiche a httpd.conf − Alias /icons/ "C:/web/icons/" − Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all Riavvio di Apache!!!