W3docs

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#fragment

Anatomia 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.

ComponenteO que especifica
schemeO protocolo ou tipo de serviço a utilizar, como http, https ou mailto.
hostO nome de domínio (por exemplo, www.w3docs.com) ou o endereço IP do servidor.
portO número da porta no host. É opcional; 80 é o padrão para http e 443 para https.
pathA localização do recurso no servidor, incluindo pastas e o nome do arquivo. Se omitido, o diretório raiz do servidor (/) é utilizado.
queryParâmetros opcionais passados ao recurso, escritos como pares key=value.
fragmentUm 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#intro

Ele é composto pelas seguintes partes:

ParteValorSignificado
schemehttpsUtilizar o protocolo HTTP seguro.
hostwww.w3docs.comO servidor a ser contactado.
port443A porta no servidor (443 é o padrão para https, por isso geralmente é omitida).
path/learn-html/page.htmlA pasta e o arquivo a solicitar.
querytab=1Um parâmetro enviado ao recurso.
fragmentintroRolar 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 documentoResolve paraTipo
href="https://example.com/page"https://example.com/pageAbsoluta
href="/path/page"https://example.com/path/pageRelativa à raiz (começa na raiz do host)
href="../sibling"https://example.com/siblingRelativa (sobe uma pasta)
href="page2.html"https://example.com/learn-html/page2.htmlRelativa (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=2

Aqui, 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%20world

Caracteres 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:

CaractereCodificado
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.

EsquemaUsado para
httpPáginas web comuns (não criptografadas).
httpsPá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.
ftpDownload ou upload de arquivos.
fileUm 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.

Prática

Prática
Quais são os componentes de um URL?
Quais são os componentes de um URL?
Prática
Em uma string de consulta de URL, como deve ser codificado um espaço?
Em uma string de consulta de URL, como deve ser codificado um espaço?
Prática
Qual href é uma URL relativa?
Qual href é uma URL relativa?
Was this page helpful?