Questo documento sfrutta i fogli di stile (CSS); senza il supporto dei fogli di stile, benché il testo sia comunque visualizzabile, non saranno visibili ne le formattazioni ne la struttura della pagina.

Sommario    Precedente    Successivo

Un primo sguardo agli URL

Sintassi generale di un URL

Contenuti della Sezione

  1. Sintassi Generale di un URL
    1. L'indicazione del protocollo di comunicazione
    2. L'identificazione univoca dell'host
    3. La risorsa da acquisire
      1. La struttura ad albero rovesciato di un file system
      2. La directory radice del server http
      3. Riferimento implicito ad una risorsa e al protocollo http
      4. Anche la directory è una risorsa
      5. I file non HTML come risorse

La sintassi di alto livello di un URL è composta da due parti separate dal carattere :

scheme:scheme_specific_part

Queste due parti si formano in modo diverso a seconda della risorsa a cui si vuol far riferimento con l'URL.

In questo scritto tratteremo in modo approfondito la formazione degli URL utilizzati per la navigazione WEB, mentre accenneremo alla formazione degli URL per l'acquisizione di altri servizi.
I concetti e le regole qui apprese e relative alla formazione degli URL, saranno preziosi anche per chi si voglia cimentare nella realizzazione dei documenti ipertestuali attraverso i linguaggi di marcatura HTML o XHTML.

L'indicazione del protocollo di comunicazione

La parte chiamata scheme identifica il protocollo di comunicazione utilizzato per reperire una risorsa specifica e quindi indirettamente individua la tipologia di risorsa a cui si vuol far riferimento con l'URL.

Il protocollo utilizzato per la navigazine WEB e quindi per i documenti ipertestuali, è il protocollo http.

Esempio: Dove indicare il protocollo di comunicazione
http:scheme_specific_part

L'identificazione univoca dell'host

Lo scheme_specific_part degli URL http ha due funzioni fondamentali: la prima è quella di identificare l'host a cui inviare la richiesta; la seconda è quella di individuare in modo specifico la risorsa che il server dovrebbe restituire con la sua risposta.

La parte scheme_specific_part di un URL http, può essere ulteriormente disaggregata in questo modo:

//autorità/percorso

In questa sezione sarà approfondito il significato di //autorità, come parte in cui inserire un nome di dominio.

Esempio: Nome di dominio
http://www.jacknake.org

Il nome di dominio, o anche nodo, identifica l'host su cui è avviato, ed è in ascolto, il server http, che risponderà alle nostre richieste.

Il nome di dominio è formato da almeno due parti ciascuna separata da un punto (jacknake.org); le parti che formano il nome di dominio possono essere anche più di due, ma comunque l'ultima rappresenta un codice, normalmente di due o tre lettere, che identifica, o la regione geografica in cui è situato il server (.it per Italia, .de per Germania .fr per Francia ecc.), oppure il tipo di sito a cui ci connettiamo (.com per sito commerciale, .org per sito di organizzazioni non governative senza scopo di lucro, .edu per sito di università ecc.).

In realtà dietro al nome di dominio si cela un indirizzo IP; non è lo scopo di questo scritto spiegare come i nomi di dominio vengono risolti in indirizzi IP.

La risorsa da acquisire

La seconda importante funzione dello scheme_specific_part è quella di indicare la risorsa da acquisire, in particolare questo compito è svolto dalla parte /percorso

Esempio: La risorsa come un file
http://www.jacknake.org/index.html

Il file da acquisire è normalmente un documento ipertestuale di tipo HTML che sarà spedito dal server in risposta alla richiesta ricevuta; in particolare il file ricevuto sarà elaborato dal programma che ha fatto la richiesta, il quale potrà, ad esempio, visualizzarlo all'interno di una finestra, oppure avviare una procedura di download sulla nostra macchina.

Il tipo di elaborazione eseguita sul file ricevuto dipende dal programma che fa la richiesta e dal tipo di file richiesto; normalmente il programma che fa la richiesta è un browser, il file richiesto è di tipo HTML e quindi l'elaborazione consiste nella visualizzazione dei contenuti del file secondo i significati propri dei vari marcatori HTML.

L' Host su cui gira il server è, come già detto, un computer che, con tutta probabilità, avrà centinaia di directory, all'interno delle quali ci potranno essere migliaia di file.
La questione importante da capire è come faccia il server a conoscere in quale directory si trovi il file che gli è stato chiesto dal client.
A questo scopo è necessaria una digressione sull'organizzazione gerarchica ad albero rovesciato delle directory all'interno di un filesystem.
Il filesystem può essere considerato come un modo di organizzare e gestire logicamente i file e le cartelle in un qualsiasi supporto di memorizzazione.

La struttura ad albero rovesciato di un file system

La maggior parte dei filesystem hanno una directory radice da cui tutto parte, nel senso che è da questo punto che vengono create ulteriori directory in cui memorizzare i file.

La directory radice, in quanto tale, può contenere file o altre directory; ciascuna delle directory contenute in quella radice possono contenere altre directory o altri file e così via fino a che vi sia capacità fisica di memorizzazione sul supporto utilizzato.

Il modo di indicare la directory radice varia da un sistema operativo ad un altro; in una console Linux, la directory radice è rappresentata con uno slash /.
Per individuare un file memorizzato su un disco, quindi, si dovrà indicare tutto il percorso da seguire partendo dalla directory radice, fino ad arrivare alla directory in cui si trova il file voluto.

Se il file index.html fosse nella directory radice, il percorso o PATH sarebbe semplicemente /index.html; se invece lo stesso file fosse all'interno della directory mysite, a sua volta contenuta nella directory radice, il percorso sarebbe /mysite/index.html.
Il primo slash indica la directory radice, il secondo slash ci dice che stiamo dentro una directory, il cui nome è la sequenza di caratteri immediatamente precedente.

Se scrivessimo un percorso del tipo /mysite/mirror/index.html, il nostro file sarebbe posizionato nella directory mirror, contenuta all'interno della directory mysite, che a sua volta è posizionata all'interno della directory radice.

La directory radice del server http

Un server http è impostato per far riferimento ad una propria directory radice.
La directory radice a cui si riferisce il server non necessariamente corrisponde alla directory radice del sistema su cui quel server è avviato; in ogni caso, il server permetterà l'accesso dall'esterno a partire dalla sua directory radice.

l'URL http://www.jacknake.org/index.html, quindi, identifica una risorsa sotto forma di file HTML di nome index.html, che si trova nella directory radice del server che gira sulla macchina identificata da www.jacknake.org.

Il file risorsa può essere memorizzato in una qualsiasi directory a partire dalla radice del server.

Esempio: La risorsa è un file
http://www.jacknake.org/informatica/url.html

Se fosse indicato un file, oppure una directory, che non esiste nel percorso specificato, il server WEB risponderà con l'errore n. 404 Not Found.

Riferimento implicito ad una risorsa e al protocollo

Qualsiasi browser per la navigazione in internet ha una barra degli indirizzi in cui scrivere l'URL del sito che si intende visitare.
A tal propostio si è sicuramente notato che in tale barra è sufficiente scrivere l'URL indicando solamente l'identificativo della macchina host su cui gira il server.

Esempio: L'URL nella barra degli indirizzi
www.jacknake.org

L'omissione del protocolo di comunicazione da utilizzare non provoca la generazione di un errore da parte del server, in quanto i programmi client come i browser sono configurati per utilizzare il protocollo http in modo predefinito, quando la sequenza scritta nella barra degli indirizzi appare essere un URL destinato ad un server WEB.

La mancata indicazione espressa di una risorsa da acquisire, allo stesso modo, non genera un errore, in quanto il server WEB è normalmente configurato per restituire un file predefinito, qualora non sia in grado di determinare dall'URL quale file restituire.

Anche la directory è una risorsa

Gli URL che si sono visti finora, quando referenziano in modo esplicito una risorsa, indicano sempre un nome di un file.
Ciò non è obbligatorio, in quanto con l'URL si può indicare come risorsa da reperire anche una directory.

Esempio: L'URL che referenzia una directory
http://www.jacknake.org/informatica/

La risposta del server è diversa a seconda di come esso è stato configurato.
Infatti l'amministratore del sistema può decidere di negare l'accesso a determinate directory, o può consentirlo solo a determinati utenti; in tali casi, se l'utente non è autorizzato, la risposta del server sarà l'errore n. 403 Forbidden.

Un'altro tipo di configurazione del server implica l'associazione di un file predefinito ad una o più directory, cosicchè quando il client fa riferimento ad una di quelle directory otterà in risposta quello specifico file.

L'ultima ipotesi di configurazione prevede che il server invii come risposta la lista dei file e delle directory contenuti nella directory referenziata; normalmente gli elementi di questa lista sono visualizzati dal browser in modo attivo sotto forma di collegamento, in modo che l'utente possa accedervi direttamente, ad esempio cliccando su uno dei termini della lista.

I file non HTML come risorse

Per mezzo di un URL http si possono acquisire risorse diverse dai documenti ipertestuali: immagini, audio, video, programmi eseguibili, documenti in altri formati, sono tutte risorse a cui si può accedere grazie al protocollo http.

Dietro a ciascuna di queste risorse vi è, naturalmente, un file, che può essere referenziato con un URL allo stesso modo con cui si referenziano i file di tipo HTML.

Esempio: Acquisire una immagine
http://www.jacknake.org/Documents/Foto/district_4.jpg

Conoscere il tipo di file che si stà acquisendo non è tanto importante per la costruzione dell'URL, ma piuttosto per capire come il browser reagirà una volta ricevuta la risorsa dal server.

Esempio: Acquisire un video
http://www.jacknake.org/Doc/Video/lamu_sigla.mpg

Quando il browser non è in grado di elaborare direttamente il file ricevuto dal server, il suo comportamento dipende da come è stato configurato.
Esso può essere configurato per avviare in automatico un apposito programma esterno, per mezzo del quale elaborare il file acquisito via internet; in tal caso, una volta conclusa l'acquisizione, il browser lancia uno specifico programma, gli passa il file acquisito e da questo momento l'elaborazione va sotto il controllo di questo programma esterno.

La configurazione predefinita dei browser non è quella di avviare un programma esterno, ma piuttosto quella di salvare il file sul disco locale, normalmente previa richiesta all'utente di indicare in quale directory tale salvataggio deve essere effettuato.