Um URL (Uniform Resource Locator) é um formato de designação universal para designar um recurso na Internet. Trata-se de uma cadeia de caracteres ASCII imprimíveis que se decompõe em cinco partes :
Um URL tem a seguinte estrutura:
| Protocolo | palavra-passe (facultativa) | Nome do servidor | Porta (facultativa se 80) | Caminho |
| http:// | user:password@ | pt.kioskea.net | :80 | /glossair/glossair.php3 |
Os protocolos seguintes podem, por exemplo, ser utilizados através do URL :
O nome de ficheiro na URL pode ser seguido de um ponto de interrogação e depois de dados no formato ASCII, tratam-se de dados suplementares enviados em parâmetro de uma aplicação sobre o servidor (um certificado CGI por exemplo). A URL assemelhar-se-á então a uma cadeia de caracteres como esta:
http://pt.kioskea.net/forum/index.php3?cat=1&page=2</code>A codificação de uma URL
Já que o URL é um meio para enviar informações através da Internet (para enviar dados a um certificado CGI por exemplo), é necessário poder enviar caracteres especiais. Ora, os URL não podem conter caracteres especiais. Além disso, certos caracteres são reservados porque têm um significado (o slash permite especificar um subdirectório, os caracteres & e? servem para o envio de dados por formulários, ...). Por último, as URL podem ser incluídas num documento HTML, o que torna difícil a inserção de caracteres como <ou> no URL
É por isso que uma codificação é necessária! A codificação consiste em substituir os caracteres especiais pelo carácter % (ele mesmo um carácter especial) acompanhado do código ASCII do carácter a codificar em notação hexadecimal.
Eis a lista dos caracteres que necessitam uma codificação específica :
| Carácter | Codificação URL |
|---|---|
| Tabulação | %09 |
| Espaço | %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 |
O formato dos URLs é definido pelo RFC 1738 :