Localizadores Uniformes de Recursos HTML
Um Localizador Uniforme de Recursos (URL) é uma referência a um recurso web. Aprenda sobre URL, sua sintaxe e codificação.
Um Localizador Uniforme de Recursos (URL), comumente chamado de endereço web, é uma referência a um recurso web que especifica sua localização na rede de computadores e um mecanismo para recuperá-lo. Um URL é um tipo especial de Identificador Uniforme de Recursos (URI), embora esses dois termos sejam às vezes usados de forma intercambiável. Na maioria dos navegadores web, o URL de uma página web é exibido acima da página em uma barra de endereços.
Um URL pode ser composto por palavras ou por um endereço de Protocolo de Internet (IP). Em geral, os usuários digitam o nome porque é mais fácil de lembrar do que números.
Esta página explica a anatomia de um URL, como URLs absolutas e relativas se comportam em atributos HTML, como funcionam as partes de consulta e fragmento, a codificação de URL e os esquemas mais comuns.
Sintaxe de URL
A sintaxe geral de um endereço web completo é:
scheme://host:port/path?query#fragmentAnatomia de um URL
De acordo com a RFC 3986 — a especificação que define URLs — um URL possui os componentes abaixo. Não há um componente separado para "nome de arquivo": um nome de arquivo é simplesmente o último segmento do caminho.
| Componente | O que especifica |
|---|---|
| scheme | O protocolo ou tipo de serviço a utilizar, como http, https ou mailto. |
| host | O nome de domínio (por exemplo, www.w3docs.com) ou o endereço IP do servidor. |
| port | O número da porta no host. É opcional; 80 é o padrão para http e 443 para https. |
| path | A localização do recurso no servidor, incluindo pastas e o nome do arquivo. Se omitido, o diretório raiz do servidor (/) é utilizado. |
| query | Parâmetros opcionais passados ao recurso, escritos como pares key=value. |
| fragment | Um identificador opcional (âncora) que aponta para uma parte específica do recurso. |
Um URL completo, detalhado
Considere este endereço:
https://www.w3docs.com:443/learn-html/page.html?tab=1#introEle é composto pelas seguintes partes:
| Parte | Valor | Significado |
|---|---|---|
| scheme | https | Utilizar o protocolo HTTP seguro. |
| host | www.w3docs.com | O servidor a ser contactado. |
| port | 443 | A porta no servidor (443 é o padrão para https, por isso geralmente é omitida). |
| path | /learn-html/page.html | A pasta e o arquivo a solicitar. |
| query | tab=1 | Um parâmetro enviado ao recurso. |
| fragment | intro | Rolar até o elemento com id="intro" após o carregamento da página. |
URLs Absolutas vs. Relativas
Em HTML, um URL pode ser escrito de forma completa (absoluta) ou parcial (relativa). Para uma URL relativa, o navegador preenche as partes ausentes — esquema, host e o diretório base — a partir do URL da página atual.
Isso é relevante em qualquer lugar em que você referencie outro recurso: em links <a href>, imagens <img src> e folhas de estilo <link href>.
Suponha que a página atual seja https://example.com/learn-html/page.html:
| No documento | Resolve para | Tipo |
|---|---|---|
href="https://example.com/page" | https://example.com/page | Absoluta |
href="/path/page" | https://example.com/path/page | Relativa à raiz (começa na raiz do host) |
href="../sibling" | https://example.com/sibling | Relativa (sobe uma pasta) |
href="page2.html" | https://example.com/learn-html/page2.html | Relativa (mesma pasta) |
<!-- Absolute URL: includes the scheme and host -->
<a href="https://example.com/page">External page</a>
<!-- Root-relative: starts at the site root -->
<img src="/images/logo.png" alt="Logo" />
<!-- Relative: relative to the current page's folder -->
<link rel="stylesheet" href="../css/style.css" />Use URLs relativas para criar links dentro do seu próprio site (elas continuam funcionando se o site for movido para um novo domínio) e URLs absolutas para apontar para recursos externos. Consulte Links HTML para saber mais sobre links.
O Componente de Consulta
A string de consulta vem após um ? e carrega dados para o recurso como pares key=value. Múltiplos parâmetros são unidos com &:
https://www.w3docs.com/search?q=html&page=2Aqui, q=html e page=2 são dois parâmetros separados. Servidores (e JavaScript) leem esses valores para decidir o que retornar — por exemplo, um termo de busca e um número de página.
O Fragmento (Âncora)
O fragmento vem após um # e aponta para uma parte específica de uma página. O navegador rola até o elemento cujo id corresponde ao fragmento. É processado inteiramente no navegador e nunca é enviado ao servidor.
<!-- Links to the element with id="section2" on the same page -->
<a href="#section2">Jump to Section 2</a>
<h2 id="section2">Section 2</h2>Codificação de URL
URLs só podem ser transmitidas pela Internet usando o conjunto de caracteres ASCII. Se um URL contiver caracteres fora desse conjunto — ou caracteres que têm um significado especial em uma URL — esses caracteres devem ser codificados.
Na codificação de URL (também chamada de codificação percentual), um caractere é substituído por % seguido de seu valor hexadecimal de dois dígitos. URLs não podem conter espaços, então um espaço se torna %20 (ou, em strings de consulta, um sinal de +):
Before: https://www.w3docs.com/search?q=hello world
After: https://www.w3docs.com/search?q=hello%20worldCaracteres reservados como ?, &, =, # e / possuem significado estrutural em uma URL, portanto, quando aparecem dentro de um valor, também devem ser codificados em percentual (por exemplo, & se torna %26). Algumas substituições comuns:
| Caractere | Codificado |
|---|---|
| espaço | %20 |
& | %26 |
# | %23 |
? | %3F |
= | %3D |
Esquemas Comuns
O esquema informa ao navegador qual protocolo ou serviço utilizar. Os mais comuns estão abaixo.
| Esquema | Usado para |
|---|---|
http | Páginas web comuns (não criptografadas). |
https | Páginas web seguras (criptografadas). O padrão para a web moderna. |
mailto: | Abre o cliente de e-mail do usuário, por exemplo, mailto:[email protected]. |
tel: | Inicia uma chamada telefônica em dispositivos compatíveis, por exemplo, tel:+15551234567. |
data: | Incorpora pequenos recursos inline, por exemplo, uma imagem em base64. |
ftp | Download ou upload de arquivos. |
file | Um arquivo no computador local. |
<a href="mailto:[email protected]">Email us</a>
<a href="tel:+15551234567">Call us</a>Por razões de segurança, os navegadores modernos restringem os esquemas ftp: e file:: o suporte a ftp: foi removido da maioria dos navegadores, e links file: para arquivos locais geralmente não funcionam em páginas servidas via http/https.