Il World Wide Web
Il World Wide Web (WWW) è un’ architettura software che consente
l’accesso a documenti collegati fra loro e distribuiti su un numero
elevatissimo di macchine collegate tramite la rete Internet.
La rapida diffusione delle connessioni a Internet è giustificata
dall’introduzione dell’ interfaccia utente grafica di utilizzo facile, anche per i principianti.
Il sistema WWW è basato sul modello client-server,
utilizza per la comunicazione il protocollo HTTP e per la scrittura delle pagine
WEB i linguaggi HTML e JAVA.
Il Lato client
Dal punto di vista utente il WEB è una vastissima collezione di documenti, chiamati pagine. Ogni pagina può contenere
collegamenti (link) ad altre pagine
dislocate in qualunque altro sistema nel mondo. L’utente accede in modo
automatico alla pagina collegata, semplicemente facendo un clic sul link. Una volta raggiunta la pagina
remota è possibile reiterare la richiesta su un altro link e così via.
Questa tecnica di utilizzo di link
fra varie pagine è detta ipertesto.
La pagina oltre al testo può contenere
icone, diagrammi, disegni,
immagini e suoni, cioè oggetti di natura differente, per cui si può
parlare di ipermedia. Ognuno di
questi oggetti può essere un link ad
altre pagine.
Il programma che si incarica di visualizzare le pagine sul client è detto browser (o sfogliatore) . Il browser
provvede a recuperare la pagina richiesta tramite il link, eventualmente collegandosi alla macchina su cui risiede la
pagina, interpreta il testo e i comandi formattati che la pagina contiene e
visualizza la pagina sullo schermo.
L’acquisizione di una pagina remota avviene attraversando la rete
Internet e utilizzando il protocollo di rete TCP/IP. Per ogni richiesta remota
è aperta una connessione TCP/IP che viene rilasciata alla
ricezione completa della pagina.
Il Lato Server
Il Server Web ha
costantemente attivo un processo in attesa di richieste di connessioni TCP/IP da parte dei client. Dopo
che una connessione è stata stabilita, il client
invia una richiesta al server che risponde con la pagina desiderata; a questo
punto la connessione viene rilasciata. Il protocollo che definisce la sintassi
delle richieste e delle risposte è detto HTTP (HyperText Transfer
Protocol). Una pagina del WEB è identificata da un
indirizzo detto URL (Uniform Resource Locator).
Un URL è ad esempio il seguente : http://www.w3.org/hypertext/WWW/TheProject.html
ed è costituito da tre parti fondamentali: il nome del
protocollo (es. HTTP, FTP, ecc.), il nome della
macchina (sito) dove la pagina risiede (es. www.w3.org),
il nome del file contenente la pagina, come percorso completo (es. hypertext/WWW/TheProject.html). I nomi dei siti e i relativi
indirizzi IP di Internet sono registrati
in un database che è gestito da un servizio di Internet detto DNS (Domain name Services): esso fornisce l’indirizzo IP corrispondente a un nome di sito e per i nuovi siti permette di non
assegnare nomi e indirizzi già utilizzati.
Il colloquio client-server
Quando un utente, da una pagina WEB attiva un link, ad esempio: http://www.w3.org/hypertext/WWW/TheProject.html, si attiva un colloquio con il server che
avviene nei seguenti passi:
1)
Il
browser determina il corrispondente URL (associato al link).
2)
Il
browser chiede al DNS l’indirizzo IP corrispondente al link (es. www.w3.org)
3)
Il
DNS risponde con l’indirizzo IP (es. 18.23.0.23).
4)
Il
browser attiva una connessione TCP/IP verso il server (IP 18.23.0.23).
5) Il client (browser) invia un
comando di GET per recuperare la pagina
(es. GET
/hypertext/WWW/TheProject.html).
6)
Il
server (all’indirizzo logico www.w3.org) invia il file TheProject.html contenente
la pagina.
7)
La
connessione TCP/IP è rilasciata.
8)
Il
browser visualizza il testo della
pagina sul monitor del client.
9)
Il
browser recupera e visualizza le
immagini della pagina.
Il protocollo HTTP
Il protocollo standard per colloquiare nel WEB tra client e server è l’ HTTP (HyperText Transfer Protocol) . Esso è
un protocollo basato sul codice ASCII, cioè sia le richieste, sia
le risposte sono basate su un formato sintattico che è un testo; non vengono
usati comandi formattati in binario. Il protocollo HTTP è basato su due gruppi di
messaggi: l’insieme di richieste (dal client al server),
l’insieme di risposte (dal server al client).
La comunicazione è basta su due tipologie di messaggi:
-
Request: è il messaggio inoltrato
dal client al server e specifica una
particolare operazione da eseguire;
-
Reply: è il messaggio di risposta
spedito dal server al client e contiene i risultati
dell’operazione (ad esempio la pagina richiesta, un messaggio di errore, un
messaggio di conferma).
Esempi di messaggi di Request sono:
GET: Richiede di acquisire una
pagina WEB .
HEAD: Richiede di leggere
l’intestazione (Header) di una pagina
WEB .
PUT: Richiede di memorizzare
sul server una pagina WEB
POST: Richiede di inviare i dati
immessi dall’utente a una risorsa nominata (es. programma di elaborazione).
DELETE: Richiede di rimuovere una
pagina WEB dal server.
LINK: Connette due risorse
esistenti.
UNLINK: Rilascia un’esistente
connessione tra due risorse.
I messaggi di request hanno una struttura del tipo: Request = <header, body >.
L’header può contenere diverse voci e
diverse opzioni ma la prima riga deve essere strutturata come segue:
Il Method può essere GET, POST, ecc. e indica quale operazione deve essere eseguita dal server. Il Request-URI è la risorsa richiesta (tipicamente un file corrispondente alla pagina
WEB). Version
è la versione del protocollo, ad esempio nel caso di release 1.0 sarà “HTTP/1.0”. SP indica il carattere spazio
e CRLF (Carriage Return Line Feed)
lo spostamento a una nuova riga. Esempi di messaggi sono i seguenti:
GET
/main.html HTTP/1.0
GET
/images/test.gif HTTP/1.0
Per quanto riguarda il messaggio di risposta la struttura è la stessa:
Response = <header, body>.