$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Server web e protocollo HTTP
Dott. Emiliano Bruni([email protected])
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Argomenti del corso
Cenni generali sul webIIS e ApacheIl server web Micsosoft® Internet Information Server 5.0Il server web Apache 2.0Il protocollo HTTP
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
TerminologiaGPL: Licenza software. I programmi distribuiti sotto questa licenza sono gratuiti, se ne hanno i sorgenti e possono essere modificati e redistribuiti a patto di essere distribuito ancora sotto licenza GPLServer web: Software che distribuisce pagine www agli utenti che ne fanno richiestaLogs: File che tengono traccia gli eventi, gli accessi, i problemi relativi ad un determinato softwarePagine statiche: Pagine www con contenuto statico ed immutabile a meno di non modificare fisicamente il contenuto della pagina stessaPagine dinamiche: Pagine www generate da un software esterno che si possono modificare il proprio contenuto in base ad informazioni e parametri esterniLinguaggi scripting: Linguaggi con cui è possibile scrivere pagine www dinamiche
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
TerminologiaCGI: Interfaccia con cui il server web dialoga con il software esterno e tramite la quale riceve il documento www generato dallo stessoBrowser: Programma con cui l’utente visualizza le pagine HTMLFrame: Un sito o una sua sottosezione si dice fatta a frame quando la pagina visualizzata in realtà è formata da più pagine distinte. Per il browser ogni pagina costituente (detta, per l’appunto, frame) è come se fosse una finestra separata del browser e, per esempio, ha leproprie sbarre di scorrimento separate da quelle degli altri framePath: Percorso sul disco rigido di un file o di una cartellaWYSIWYG: (What you see is what you get – Ciò che vedi è ciò che ottieni). Lo si dice di un programma atto a generare un documento ove la finestra di creazione e modifica del documento contiene il documento esattamente come appare poi nella sua forma finale al software di visualizzazione del documentoO.S.: Abbreviazione inglese di “sistema operativo”
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
TerminologiaHTTP: Sintassi con cui il server web invia le pagine HTML al browserURL: (Unificated resource location) stringa che contiene tutte le informazioni necessarie a recuperare un documento. E’ l’analogo postale del’informazione“nome+cognome+via+n.civico+cap+citta+provincia”. Nel protocollo HTTP è nella forma http://www.dominio.ext/path/nomefile.htmDaemon: (demone) software in attesa di fornire informazioni. Se le informazioni sono accessibili dall’esterno del calcolatore su cui il daemon gira si parla anche di daemon pubblico.Server: Computer su cui gira almeno un daemon pubblicoClient: Software che si collega ad un daemon su di un server per ottenere informazioni
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Cenni generali sul web
Il concetto di URLConcetti generali di un server webL’interfaccia CGI
Per cosa sono utili i CGICome funziona l’interfaccia CGII linguaggi di scripting
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Il concetto di URLSignifica: Unificated resource locationStringa che contiene tutte le informazioni necessarie a localizzare un documento sulla rete. Può essere visto come l’analogo postale del-l’ informazione: “nome+cognome+via+n.civico+cap+citta+provincia+nazione”.
La sua sintassi completa è:<schema>://<user>:<password>@<host>:<port>/<url-path>?query
Nel protocollo HTTP è nella forma http://www.dominio.ext/path/nomefile.htm
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Cos’è un server web
Software che usualmente distribuisce pagine www agli utenti che ne fanno richiestaDefinizione di document root e recupero documentiIl concetto di alias
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Il protocollo HttpVisualizziamo la pagina http://www.micso.it/Browser
telnet su www.micso.it:80richiede il documento “/”
Serverricerca documento sul HDInvia il documento al browser
Browser elabora la rispostarichiede eventuali altri elementi della pagina (immagini, suoni, video)
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
IIS e Apache
Apache in breveI numeri di Apache
Vantaggi di ApacheSvantaggi di ApacheIIS in breveVantaggi di IISSvantaggi di IIS
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Apache in breveE’ il più potente, flessibile web serverE’ il server web più utilizzato in INTERNET. E’ attivo su oltre 6 milioni di server web in INTERNET (febbraio 2000) Altamente configurabile ed estendibilePersonalizzazione modulare (C++/Perl)Distribuito in formato sorgentePer WinNT/9x/2k,Netware,OS/2,*nix
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
I numeri di ApacheSu Internet Windows conta poco ed è Unix ad avere il predominio.
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Vantaggi di ApacheE’ OpenSourceE’ modulare ed estendibileGira su qualsiasi O.S.E’ il server web più utilizzato su InternetSupporto interno di tutti i motori di scriptingFa girare nativamente gli applet JavaE’ robusto e bug-free
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Svantaggi di Apache
Supporto minimo per ASPSupporto in fase di sviluppo per .NET
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
IIS in breve
E’ il web server di casa Microsoft E’ presente “gratuitamente” sui CD di installazione di Windows 2000 Pro/Server e su WinXP
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Vantaggi di IIS
Supporto completo per ASPSupporto completo per .NETFacilmente integrabile con l’Active Directory e con gli utenti di un dominio Windows
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Svantaggi di IIS
Software non apertoMolti bug di sicurezza presentiMaggiore lavoro di aggiornamento patchAltri linguaggi di scripting girano su shell esterne
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Installazione di IIS5.0La struttura a directoryIl concetto di default documentUno sguardo al file di log degli accessiIl concetto di applicativo web e il file global.asaWeb scripting sotto IISMessaggi di errore e loro personalizzazioneI server web virtuali sotto IIS
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
La struttura a directoryc:\Inetpub\wwwroot
Directory base_vti_*
Estensioni del frontpagec:\winnt\system32\LogFiles
Log dei server webc:\Inetpub\scripts
Default, unica cartella per scriptglobal.asa
File di inizializzazione applicativo web
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Il server web Apache 2.0
Installazione su RedHatLa struttura a directoryIl file di configurazioneI server web virtuali sotto ApacheWeb scripting sotto Apache
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Installazione su RedHat
Già installato, altrimenti…Pacchetti RPM (rpm –ivh httpd*)Esecuzione
Manuale: service httpd start
Automatica: setup
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
La struttura a directory/etc/httpd/: configurazione, moduli, logs
conf/: file di configurazionehttpd.conf:
conf.d/: configurazione x modulologs/: i file di log
access_log: monitorizza tutti gli accesserror_log: tiene traccia di tutti gli errori
modules/: l’apache è modulare e potete far partire solo le funzionalità che vi servono senza caricare funzionalità che non utilizzate sovraccaricando inutilmente il sistema
/var/www/html/: sito web
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Il file di configurazionePath: /etc/httpd/conf/httpd.confContiene tutte le direttive per configurare le opzioni del server webPiù di 200 opzioni configurabili tra cui:
Path vari file e directory dei sistemaAttivazione,disattivazione dei moduliConfigurazione privilegi di accessoConfigurazione server web virtualiTuning dei processi httpd
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
L’interfaccia CGIAcronimo per “Common Gateway Interface”Specifica il modo in cui il server può eseguire programmi residenti sul server e il modo in cui il server e il programma possono scambiarsi informazioniSvincolato dal linguaggio di programmazione. Ogni linguaggio utilizzabile sul server può essere usato per creare uno script CGI
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Per cosa sono utili i CGIGenerazione di contenuti…
…variabili nel tempo o dipendenti da proprietà mutabili…disponibili sul sistema ma non in formato direttamente fruibile…non direttamente accessibile per motivi di sicurezza…con interfaccia di accesso complessa o non trasferibile via html
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Come funziona l’interfaccia CGI1. Il client richiede un URL o
invia un form premendo il pulsante invio.
2. Il server si accorge che l’URL punta a uno script CGI.
3. Il server passa allo script tutta una serie di informazioni tra cui quelle eventualmente ricevute dal client.
4. Lo script elabora le informazioni ricevute e restituisce al server il risultato dell’elaborazione, di solito, in HTML.
5. Il server restituisce il risultato al browser del client.
WEB SERVER
Invia il form
Richiede unURL al server L'URL è un
programmaesterno
Esecuzionidati dell'utenteIl programma
invia il risultatoall'utente
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
I linguaggi di scripting
Tutti i linguaggi che girano sul server possono essere usati come linguaggi di scripting
• ASP• C#• Cobol• Java••
• PHP• Perl• Visual basic• C e C++• Shell• Pyton
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
ProgrammaI linguaggi di scripting più comuni
Esempi di possibili linguaggi di scriptingIl PHPIl Perl
Il Mason
Creiamo un sistema di benvenutoIn PHPIn PerlIn Mason
Un sito a pseudo-frame utilizzando i templateIl problema dei frameLa soluzione in Mason
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Il PHPPro
OpenSourceTempi di apprendimento molto rapidiIntegrabile nel codice html
ControNon è Object OrientedNon è modulare ed è complicato aggiungere nuove funzionalità.
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Il PerlPro
OpenSourceObject OrientedE’ modulare.Struttura del linguaggio veramente completa ed esaustiva.Immensa libreria di moduli per qualsiasi funzionalita (CPAN).E’ possibile programmare il server Apache.
ControTempi un po’ lunghi per piena padronanza del linguaggio.Non è integrabile nel codice HTML.
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Il MasonI vantaggi del Perl + quelli del PHPPro
Tutti quelli del Perl.Integrabile nel codice htmlNato per l’ambiente CGI e quindi semplice utilizzo in tale modalità
ControTempi un po’ lunghi per avere padronanza del linguaggioLievemente meno efficiente del PHP e del Perl in termini di risposta.
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Script di esempio
Scriviamo delle pagine dinamiche che ci salutano nei linguaggi:
PHPPerlMason
$Id: web_e_http 1.0 2003/12/14 00:31:23 bruni Exp $
Altre fonti di informazioneApache
http://www.apache.org/PHP
http://www.php.org/Perl
http://www.perl.com/http://www.cpan.org/http://perl.apache.org/
Masonhttp://www.masonhq.com/
Riferimenti personalihttp://www.ebruni.it/[email protected]