CLIENT WEB Strumento di interfaccia tra l`utente ed il sistema Web

SERVER WEB
CLIENT WEB
Strumento di interfaccia tra l’utente ed il sistema Web (browser).
Funzioni svolte:
•Riceve ed esegue i comandi dell’utente
•Richiede ad un server (web server) i documenti
•Interpreta i formati di codifica (HTML, GIF, JPEG;
MP3..) che costituiscono ogni singolo documento e li
presenta all’utente
•Ogni pagina gestita dal server è identificata univocamente
tramite una forma sintattica convenzionale detta URL (Uniform
Resource Locator) che ha la forma:
protocollo://nome_calcolatore/nome_documento
protocollo rappresenta l’insieme di regole che browser e server
web devono seguire per inviare la richiesta di una pagina
(browser) e per inviare la pagina richiesta (server web).
Il protocollo usato è HTTP (HyperText Transfer Protocol).
nome del calcolatore rappresenta il nome del server che
contiene le pagine cercate.
•Si occupa della gestione, del reperimento e dell’invio dei
documenti (ovvero dei vari oggetti digitali che li compongono)
richiesti dai client.
•Quando l’utente attiva un collegamento (agendo su un link) o
specifica esplicitamente l’indirizzo di un documento, il client invia
una richiesta HTTP ad un determinato server con l’indicazione
del documento richiesto.
•Il server web interpreta la richiesta , reperisce il documento
richiesto e lo invia al client usando HTTP e specificando il tipo di
documento.
Esempio:
http: // www.unibo.it/Portale/Master/default.htm
•Richiesta della pagina Master (che contiene tutti i master attivati
presso l’Università di Bologna) situata sul server www.unibo.it che
rappresenta la home page del portale dell’Università di Bologna.
•Alla ricezione della richiesta indicata, il server compie una ricerca
nell’archivio delle pagine che gestisce e quindi produce un messaggio
di risposta che contiene la pagina richiesta.
•Protocollo di applicazione: HTTP
nome del documento rappresenta il nome della pagina cercata.
1
UTENTE
BROWSER
• Nell’ipotesi che la pagina sia un semplice documento esso è
memorizzato come una sequenza di caratteri.
INVIA DOCUMENTO
HTTP//WWW.FOO.IT
SERVER
HTTP REQUEST
HTTP
REPERIMENTO FILE SUL FILE SYSTEM
SERVER
HTTP
INTERPRETAZIONE
FILE E
VISUALIZZAZIONE
BROWSER
UTENTE
• Per consentire che, quando riprodotto sul video del client, il
documento abbia la struttura voluta(suddivisione in
paragrafi, presenza di titoli e sottotitoli, particolare
evidenziazione ad alcune parti etc..), occorre descriverne tale
struttura tramite i comandi di un linguaggio di marcatura
(mark up language).
• Il più noto di questi linguaggi è HTML (HyperText Markup
Language).
HTTP RESPONSE
SERVER
HTTP
INDEX.HTM
FIG.GIF
STYLE:CSS
•Il documento richiesto può essere statico o dinamico
•Documento web statico : costituito da una serie di oggetti digitali
memorizzati in file che vengono prodotti una volta per tutte e
contenuti nel File System (fino a quando il gestore di sistema non
decide di modificarli o di rimuoverli).
•Documento web dinamico: i componenti del documento vengono
elaborati e composti sul lato server solo nel momento in cui arriva
una richiesta eplicita.
(es. risultati di una ricerca su data base).
• Una volta arrivata la pagina, il browser provvede a
visualizzarla, utilizzando un particolare programma in grado di
interpretare i comandi HTML(interprete HTML).
.
•Documenti dinamici (documenti i cui contenuti vengono elaborati e
composti sul lato server al momento dell’arrivo di una richiesta), il
server mette in esecuzione un programma che interrogando il database compone il documento da inviare al browser.
•In questo caso la URL inviata dal browser identifica un file
corrispondente ad un programma:
http://www.unibo.it/dida/calendario.exe
2
Comportamento del server.
•Più in generale, la richiesta avrebbe potuto contenere dei
parametri, per esempio:
http://www.unibo.it/dida/calendario.exe?
giorno=010901&corso=C50
specificati in uno standard noto come Common Gateway Interface,
CGI.
•In coda ad una URL e separata da questa con il carattere ? può
essere posta una lista di coppie:
nome parametro=valore
ognuna separata dalla successiva dal carattere &.
Per elaborare un documento dinamico un server web può:
- utilizzare appositi programmi (backend) o librerie di
funzioni
tramite il protocollo Common Gateway Interface
(CGI), con cui, nella richiesta, si specifica il nome del
programma e i parametri necessari;
- utilizzare nel web server linguaggi di scripting (es.ASP e
PHP) per la realizzazione dei programmi richiesti;
- con l’introduzione di un application server che realizza
le funzioni richieste utilizzando un ambiente di programmazione
evoluto.
1) Individua nel suo file system il file richiesto e stabilisce che
esso corrisponde ad un programma. Mette in esecuzione il
programma mettendosi in attesa del risultato.
2) Alla conclusione della sua esecuzione, il programma produce
un risultato e lo rende disponibile al server web (testo,
immagine..).
3) Il server acquisisce i dati, antepone un’opportuna intestazione
HTTP ed invia il risultato come risposta al browser.
4) Il browser riceve il messaggio di risposta, legge
l’intestazione, ottenendo l’informazione sul tipo e la
lunghezza del file contenuto nel corpo del messaggio, legge il
corpo del messaggio e lo visualizza.
CGI (Common Gateway Interface)
•Tecnologia ampiamente diffusa per la composizione dei
documenti dinamici.
Sviluppata da NCSA (National Center Supercomputer
Applications).
• Stabilisce le modalità di interazione tra server web e applicazioni
dedicate alla generazione di documenti dinamici (programmi CGI).
• Le applicazioni possono essere scritte in diversi linguaggi a
seconda del tipo di documento da generare (C,C++, Perl..)
• Il browser specifica nella URL
- indirizzo del server
- nome del programma da eseguire
- eventuali parametri
3
CGI
(Common Gateway Interface)
• Il server
- riceve la richiesta
- utilizza lo standard CGI per richiamare il
programma e ritornare i risultati
• Il programma CGI deve specificare di quale documento si tratta
(testo , immagine) . Il server utilizza l’opportuno formato
(HTML, JPEG..) per preparare il documento da inviare al
browser via HTTP.
Applet Java.
- programmi Java scaricati dal server ed eseguiti sul client .
Possono essere anche complessi. Vengono interpretati dal
browser tramite l’inteprete Java ed eseguiti tramite la Java virtual
machine che utilizza il S.O. del client
- usati per aggiungere effetti multimediali ed interattivi alle
pagine web (musica, animazioni, giochi interattivi, video, etc.).
- possono interagire con il server ed il database.
- problema della sicurezza
•Linguaggi di script “server side”.
intepretati ed eseguiti dal server web o da un modulo software
(application server) contenuto nel server web.
•Linguaggi più diffusi:
- ASP (Active Server Pages) utilizzato nei server Web della
Microsoft.
- PHP (PHP: Hypertext Prepocessor) legato al server web “open
source” Apache.
- Cold Fusion (Macromedia)
- JSP (Java ServerPages).
•
•In generale, questi linguaggi consentano di inserire segmenti
di codice (es.ASP: scritti in Visual Basic per accessi ai
database o per chiamate alle DLL)) dentro uno “scheletro”
(template) in un documento HTML(con cui si costruisce ad
esempio una tabella, si usano i colori)
•Quando la pagina viene richiesta viene eseguito il codice ed
il documento risultante inoltrato al client. L’esecuzione del
codice richiede di norma l’accesso ad un database. (es.
catalogo on line: le informazioni relative ad ogni singolo
prodotto sono contenute in un database)
4
Piattaforme di sviluppo (Application server).
Struttura a tre livelli
Piattaforma Java.
Si basa sullo sviluppo delle applicazioni in linguaggio Java (dette servlet) o
JSP su server applicativi basati sull’architettura J2EE.
(IBM Websphere, BEA Weblogic, Tomcat).
La piattaforma offre servizi per la sicurezza, gestione e profilazione degli
utenti che accedono alle applicazioni, per l’accesso controllato ai database..
•Il programma messo in esecuzione “dietro” il server web prende il nome di
“back end” ed implementa la logica applicatica (LA).
Piattaforma .Net
Strettamente legata ai sistemi operativi Windows di classe server.
Capacità di supportare numerosi linguaggi di programmazione e di poter
integrare oggetti software preesistenti.
Piattaforma Zope
Open source. Si basa sul linguaggio di programmazione Python.
•Il server web ha il compito di gestoredella comunicazione con i browser e di
controllore dei processi di back-end.
Specializzazione.
Ogni sottosistema è realizzato per svolgere compiti particolari e deve solo
condividere un protocollo con gli altri sottosistemi (CGI : protocollo
applicativo tra server web e back end)
browser
server web
back end
Struttura a quattro livelli
•Se la logica applicativa richiede una gestione di dati sofisticata,
“dietro” al back end potrà essere messo un DBMS.
•Il back end diventa client nei confronti del DBMS tutte le volte che
è necessario operare in termini di memorizzazione e reperimento dei
dati.
•In generale, ogni volta che è necessario un componente che realizza
la funzione applicativa richiesta si può fare in modo che il back end
richiami tale componente invece di realizzare nuovamente la stessa
funzione. (back- end come gestore di componenti distribuite).
browser
server web
back end
DBMS
5