Un URL (Uniform Resource Locator) è un formato di denominazione universale per designare una risorsa su internet. Si tratta di una stringa di caratteri ASCII stampabili che si scompone in cinque parti :
Un URL ha quindi la struttura seguente :
| Protocollo | Password (facoltativa) | Nome del server | Porta (facoltativa se 80) |
Percorso |
| http:// | user:password@ | it.kioskea.net | :80 | /glossair/glossair.php3 |
I protocolli seguenti possono ad esempio essere attraverso l'URL :
Il nome del file nell'URL può essere seguito da un punto interrogativo poi da dati in formato ASCII, si tratta di dati supplementari inviati in parametri di un'applicazione sul server (uno script CGIad esempio). L'URL assomiglierà allora a una stringa di caratteri come questa :
http://it.kioskea.net/forum/index.php3?cat=1&page=2
Dato che l'URL è un mezzo per inviare delle informazioni attraverso internet (per inviare dei dati a uno script CGIad esempio), è necessario poter inviare dei carattere speciali, ma gli URL non possono contenere dei caratteri speciali. Inoltre, alcuni caratteri sono riservati dato che hanno un significato (lo slash permette di specificare una sotto-cartella, i caratteri & e ? servono ad inviare dei dati per formulario...). Infine gli URL possono essere inclusi in un documento HTML, cosa che rende difficile l'inserimento di caratteri come < o > nell'URL.
Ecco perché una codifica è necessaria! La codifica consiste nel sostituire i caratteri speciali con il carattere % (che diventa a sua volta un carattere speciale) seguito dal codice ASCII del carattere da codificare in notazione esadecimale.
ECcco la lista dei caratteri che necessitano di una codifica particolare :
| Carattere | Codifica URL |
|---|---|
| Tabulazione | %09 |
| Spazio | %20 |
| " | %22 |
| # | %23 |
| % | %25 |
| & | %26 |
| ( | %28 |
| ) | %29 |
| + | %2B |
| , | %2C |
| . | %2E |
| / | %2F |
| : | %3A |
| ; | %3B |
| < | %3C |
| = | %3D |
| > | %3E |
| ? | %3F |
| @ | %40 |
| [ | %5B |
| \ | %5C |
| ] | %5D |
| ^ | %5E |
| ' | %60 |
| { | %7B |
| | | %7C |
| } | %7D |
| ~ | %7E |
Il formato degli URL è definito dalla RFC 1738 :