Applied Information Technology - II. WWW

[Precedente] [Indice] [Successiva]

3) Standard utilizzati nel Web

Ci sono tre standard principali che, nel loro insieme, costituiscono l'architettura software del Web:

3.1) URL

Una URL costituisce un riferimento a una qualunque risorsa accessibile nel Web.
Tale risorsa ovviamente risiede da qualche parte, ed è in generale possibile accedervi in vari modi.
Dunque, una URL deve essere in grado di indicare: Per queste ragioni, una URL è fatta di 3 parti, che specificano: Un tipico esempio di una URL è:

http://somewhere.net/products/index.html


nella quale:
http:// è il metodo di accesso
somewhere.net è il nome dell'host
/products/index.html è l'identità della risorsa


Metodo di accesso
Indica il modo di accedere alla risorsa, cioè che tipo di protocollo bisogna usare per colloquiare col server che controlla la risorsa.
I metodi di accesso più comuni sono:
http protocollo nativo del Web
ftp file transfer protocol
news protocollo per l'accesso ai gruppi di discussione
gopher vecchio protocollo per il reperimento di informazioni; concettualmente simile al Web, gestisce solo testo
mailto usato per spedire posta
telnet protocollo di terminale virtuale, per effettuare login remoti
file accesso a documenti locali


Il Web nasce con l'idea di inglobare gli altri protocolli di accesso alle informazioni, per costituire un ambiente unificato che soddisfa tutte le esigenze.
Quando il client effettua la richiesta di una risorsa, usa nel dialogo col server il protocollo specificato dal metodo d'accesso. Se non è in grado di farlo, affida il compito a una applicazione helper esterna (questo è tipicamente il caso del protocollo telnet: il client lancia un emulatore di terminale passandogli il nome dell'host).
Dall'altra parte risponde il server di competenza, che può essere:
Nome dell'host

Può essere l'indirizzo IP numerico o, più comunemente, il nome DNS dell'host a cui si vuole chiedere la risorsa.

Identità della risorsa

Consiste, nella sua forma più completa, della specifica del nome di un file e del cammino che porta al direttorio in cui si trova.

Ad esempio, la URL:

http://somewhere.net/products/toasters/index.html


specifica il file index.html contenuto nel direttorio toasters, a sua volta contenuto nel direttorio products il quale si trova nel direttorio radice dell'host somewhere.net.
Si noti che: Esistono alcune regole per il completamento di URL non interamente specificate: Infine, una convenzione usata spesso è la seguente. A fronte di una URL del tipo:

http://somewhere.net/~username/


il server restituisce il file welcome.html situato nel direttorio public_html situato nel direttorio principale (home directory) dell'utente username.
Questo meccanismo consente agli utenti, che di norma hanno libero accesso al proprio home directory, di mantenere facilmente proprie pagine Web.

3.2) Il protocollo HTTP

Il protocollo HTTP sovraintende al dialogo fra un client e un server Web, ed è il linguaggio nativo del Web.
Il protocollo prevede che ogni singola interazione fra client e server si svolga secondo il seguente schema:
Ogni singola interazione è storia a se ed è del tutto indipendente dalle altre.

La richiesta del client

Quando un client effettua una richiesta invia diverse informazioni: I metodi definiti in HTTP sono:
GET Richiesta di ricevere un oggetto dal server
HEAD Richiesta di ricevere la sola parte head di una pagina html
PUT Richiesta di mandare un oggetto al server
POST Richiesta di appendere sul server un oggetto a un altro (vedremo che si usa molto)
DELETE Richiesta di cancellare sul server un oggetto
LINK e UNLINK Richieste di stabilire o eliminare collegamenti fra oggetti del server


In proposito, si noti che: Ad esempio, supponiamo che nel file HTML visualizzato sul client vi sia un'ancora:

<A HREF="http://somewhere.net/products/toasters/index.html"> ..... </A>


e che l'utente attivi tale link. A tal punto il client: Essa è costituita da un insieme di comandi (uno per ogni linea di testo) terminati con una linea vuota:

GET /products/toasters/index.html HTTP/1.0 Metodo, URL e versione protocollo
User-agent: Mozilla/3.0 Tipo del client
Host: 160.10.5.43 Indirizzo IP del client
Accept: text/html Client accetta pagine HTML
Accept: image/gif Client accetta immagini
Accept: application/octet-stream Client accetta file binari qualunque
If-modified-since: data e ora Inviare il documento solo se è più recente della data specificata


La risposta del server
La risposta del server è articolata in più parti, perché c'è un problema di fondo: come farà il client a sapere in che modo dovrà gestire le informazioni che gli arriveranno?
Ovviamente, non si può mostrare sotto forma di testo un'immagine o un file sonoro! Dunque, si deve informare il client sulla natura dei dati che gli arriveranno prima di iniziare a spedirglieli.
Per questo motivo la risposta consiste di 3 parti: La riga di stato, a sua volta, consiste di tre parti: Tipici codici di stato sono:

Esito Codice numerico Specifica testuale
Tutto ok 200 OK
Documento spostato 301 Moved permanently
Richiesta di autenticazione 401 Unauthorized
Richiesta di pagamento 402 Payment required
Accesso vietato 403 Forbidden
Documento non esistente 404 Not found
Errore nel server 500 Server error


Dunque, ad esempio, si potrà avere

HTTP/1.0 200 OK



Le metainformazioni dicono al client ciò che deve sapere per poter gestire correttamente i dati che riceverà.
Sono elencate in linee di testo successive alla riga di stato e terminano con una linea vuota.
Tipiche metainformazioni sono:

Server: ... Identifica il tipo di server
Date: ... Data e ora della risposta
Content-type: ... Tipo dell'oggetto inviato
Content-length: ... Numero di byte dell'oggetto inviato
Content-language: ... Linguaggio delle informazioni
Last-modified: ... Data e ora di ultima modifica
Content-encoding: ... Tipo di decodifica per ottenere il content


Il Content-type si specifica usando lo standard MIME ( Multipurpose Internet Mail Exchange), nato originariamente per estendere la funzionalità della posta elettronica.
Un tipo MIME è specificato da una coppia

MIME type/MIME subtype



Vari tipi MIME sono definiti, e molti altri continuano ad aggiungersi. I più comuni sono:

Type/Subtype Estensione Tipologia delle informazioni
text/plain .txt, .java testo
text/html .html, .htm pagine html
image/gif .gif immagini gif
image/jpeg .jpeg, .jpg immagini jpeg
audio/basic .au suoni
video/mpeg .mpeg filmati
application/octet-stream .class, .cla, .exe programmi eseguibili
application/postscript .ps documenti Postscript
x-world/x-vrml .vrml, .wrl scenari 3D


Il server viene configurato associando alle varie estensioni i corrispondenti tipi MIME. Quando gli viene chiesto un file, deduce dall'estensione e dalla propria configurazione il tipo MIME che deve comunicare al client.
Se la corrispondenza non è nota, si usa quella di default (tipicamente text/html), il che può causare errori in fase di visualizzazione.
Anche la configurazione del client (in merito alle applicazioni helper) si fa sulla base dei tipi MIME.
Tornando al nostro esempio, una richiesta del client quale:

GET /products/toasters/index.html HTTP/1.0

User-agent: Mozilla/3.0

ecc.


riceverà come risposta dal server (supponendo che non ci siano errori) le metainformazioni, poi una riga vuota e quindi il contenuto del documento (in questo caso una pagina HTML costituita di 6528 byte):
HTTP/1.0 200 OK
Server: NCSA/1.4
Date: Tue, july 4, 1996 19:17:05 GMT
Content-type: text/html
Content-length: 6528
Content-language: en
Last-modified: Mon, july 3, 1996 15:05:35 GMT

<----- notare la riga vuota

<HTML>
<HEAD>
...
<TITLE>...</TITLE>
...
</HEAD>
<BODY>
...
</BODY>
</HTML>

[Precedente] [Indice] [Successiva]

Per informazioni apweb@inwind.it - Ultima modifica 10-Apr-2002

Valid HTML 4.01!