Quais são as partes de um URL?

Na maioria das vezes, não há problema em dizer coisas como "Comprei um domínio" ou "Nossas imagens são hospedadas em um site diferente", mesmo que isso não seja estritamente verdade. No entanto, em alguns contextos, é necessário ser mais preciso. Por exemplo, ao lidar com cookies, é necessário entender a diferença entre site e origem.

Os nomes das partes do URL são especificados em um padrão, que também define uma API JavaScript:

  • O padrão de URL define URLs e conceitos relacionados para permitir que os engenheiros criem navegadores da Web interoperáveis.
  • O componente API URL do padrão define métodos para fornecer acesso a partes de uma string de URL, como o esquema ou a origem.

Este documento explica uma série de termos usados com strings de URL HTTP ou HTTPS. Ele não abrange outros tipos de URL, como URLs de arquivo ou de dados. Para termos como host e origin, as definições precisas são inerentemente complexas. Por isso, este documento fornece exemplos e links para o padrão de URL, em vez de tentar explicações completas.

É possível usar JavaScript para receber os nomes dos componentes de URL definidos pela API URL. Exemplo:

let url = new URL('https://foo.com.au:1234/bar/foo.html#bar');
console.log(url);

Analisador de URL

Edite o URL abaixo para ver como as partes da string são nomeadas. Você também pode abrir em uma guia separada em https://chrome.dev/url-parts/.


Os nomes das partes do URL estão listados em ordem alfabética abaixo.

Domínio de nível superior com código de país (ccTLD)

Um domínio de nível superior definido na lista de códigos de país ISO 3166-1.

  • Para https://example.org.au, o ccTLD é au.
  • Para https://example.io, o ccTLD é io.

Nome de domínio

As partes de um URL HTTP ou HTTPS separadas por pontos: tudo depois do esquema, mas antes do caminho ou da porta (se especificada). Cada parte do nome de domínio é conhecida como um rótulo.

URL Nome de domínio
https://example.github.io/path example.github.io
https://support.example.org.au:443 support.example.org.au

Domínio de nível superior efetivo (eTLD)

Uma entrada na lista de sufixos públicos, incluindo um TLD e (para eTLDs com várias partes) outros domínios abaixo dele: segundo nível, terceiro nível e assim por diante.

  • Por exemplo: com, com.au, github.io, sa.edu.au, schools.nsw.edu.au.

Um "sufixo público", como estes exemplos, é um nome em que os domínios podem ser registrados. A lista de sufixos públicos é uma lista de todos os sufixos públicos conhecidos e é atualizada com frequência. Navegadores como Chromium e Firefox usam a lista nas versões deles.

eTLD+1

Consulte domínio registrável.

Um eTLD mais o subdomínio que o precede.

  • Por exemplo: example.com, example.org.au, example.github.io, example.sa.edu.au, example.schools.nsw.edu.au.

Nome do arquivo

Não definido no padrão de URL e não faz parte da API URL, mas é comumente usado para se referir à parte final, não de caminho, do URL com base na suposição (geralmente incorreta) de que o URL mapeia diretamente para uma estrutura de diretório.

Por exemplo, com https://example.com/dir/file.html, file.html pode ser chamado de nome do arquivo.

O valor do nome do arquivo também é usado pelos navegadores para nomear um recurso se ele for baixado. Por exemplo, https://example.com/images/image.jpg normalmente é salvo localmente em image.jpg.

Fragmento

Uma string após um caractere # no final de um URL que fornece um identificador de fragmento.

  • Por exemplo, o URL https://example.com/cats#tabby tem um valor de identificador de fragmento tabby.

A parte que inclui o # é conhecida como hash ou âncora. Também é possível vincular e destacar um fragmento de texto.

O hash é retornado pela API URL, e não pelo fragmento.

Nome de domínio totalmente qualificado (FQDN)

Um endereço completo de um site ou servidor, que é mapeado para um endereço IP.

URL FQDN
https://example.com:1234/cats example.com
https://api.example.github.io api.example.github.io

O FQDN de um URL não inclui a porta, mesmo que uma porta não padrão seja usada.

Hash (ou âncora)

Uma string após um caractere # no final de um URL que fornece um identificador de fragmento. Em alguns contextos, isso é chamado de "âncora".

A parte que exclui o # é conhecida como fragmento. Também é possível vincular e destacar um fragmento de texto.

O hash é retornado pela API URL, e não pelo fragmento.

Host

Conforme definido no padrão de URL, um host pode ser um nome de domínio, um endereço IP v4 ou IPv6, um host opaco ou um host vazio.

  • A definição de host no padrão de URL não inclui a porta.
  • URL.host inclui a porta, a menos que ela seja a padrão do esquema.
  • URL.hostname não inclui a porta.
URL URL.host
https://www.example.com:443/cat www.example.com
// 443 is the default port for the scheme
https://www.example.com:1234/cat www.example.com:1234
https://cat.example.github.io cat.example.github.io

Nome do host

O nome do host é definido pela API JavaScript URL, mas não em outros lugares pelo padrão de URL. Consulte representação de host para mais detalhes.

URL.hostname retorna o host sem a porta.

URL URL.hostname
https://www.example.com:443/cat www.example.com
https://www.example.com:1234/cat www.example.com
https://cat.example.github.io cat.example.github.io

Origem

O padrão de URL define origin e links ao padrão HTML para informações básicas.

Para URLs HTTP ou HTTPS, URL.origin retorna o esquema, o host e a porta, a menos que a porta seja a padrão para o esquema.

URL URL.origin
https://www.example.com:443/cat https://www.example.com
https://www.example.com:1234/cat https://www.example.com:1234
https://cat.example.github.io https://cat.example.github.io

Parâmetro

Consulte Parâmetros de pesquisa.

Senha

Consulte nome de usuário.

Nome do caminho

Para um URL HTTP ou HTTPS, a parte depois do domínio e da porta (se definidos), incluindo um filename (se definido), mas não incluindo a string de pesquisa ou o hash.

URL URL.pathname
https://example.com [empty string]
https://example.com:8000/search?q=tabby /search
https://example.github.io/cat/pattern#tabby /cat/pattern
https://example.github.io/README.md /README.md

Às vezes, "Caminho" é usado para se referir ao nome do caminho sem o nome do arquivo. Por exemplo, para o URL https://example.com/cat/pattern/tabby.html, o "caminho" é /cat/pattern.

Porta

O número após um : em um URL que identifica uma porta de rede. Por exemplo, para o URL https://example.com:1234/tabby, o número da porta é 1234.

O número da porta precisa ser um número inteiro não assinado de 16 bits, ou seja, um número inteiro entre 0 e 65535, inclusive.

Para um URL HTTP, a porta padrão é 80. Para HTTPS, a porta padrão é 443. Um URL não precisa especificar o número da porta, a menos que uma porta não padrão seja usada.

A API retorna uma string vazia se a porta for a padrão do esquema.

URL URL.port
https://example.com // empty string
https://example.com:443/foo // empty string: port is default for scheme
https://www.example.com:1234/foo 1234

Protocolo

O esquema seguido por : (por exemplo, http: ou https:).

protocol está disponível na API URL, mas scheme não.

Consulta (ou "string de consulta")

A parte search do URL, excluindo o ? inicial.

Domínio registrável

  • Para um URL com um eTLD de uma parte, como com ou org (ou seja, um eTLD que corresponde a um TLD), o domínio e o domínio de segundo nível antes dele: por exemplo, example.com ou example.org.
  • Para um URL com um eTLD de duas partes em que apenas o registro de terceiro nível é permitido (ou seja, entradas na Lista de sufixos públicos, como com.au e github.io), o domínio de nível superior de duas partes ("sufixo público") e o nome de domínio de terceiro nível imediatamente anterior. Por exemplo, example.org.au ou example.github.io.
  • Para eTLDs com três ou mais partes, o eTLD e o domínio anterior.

Esquema

A parte do URL (antes de ://) que define o protocolo de rede (ou ação a ser tomada pelo user agent) quando uma solicitação é feita a um URL. Por exemplo, uma solicitação para um URL com um esquema https precisa ser feita usando o protocolo HTTPS. Para uma solicitação a um URL com um esquema como file, mailto ou git que não corresponde a um protocolo de rede, o comportamento depende do user agent. Por exemplo, quando um usuário clica em um link mailto, a maioria dos navegadores abre o aplicativo de e-mail padrão usando os valores no URL href do link.

Um ponto de interrogação seguido por uma série de pares de chave-valor que representam parâmetros e seus valores, fornecidos após o pathname.

URL URL.search
https://example.com/cats?pattern=tabby&mood=bonkers ?pattern=tabby&mood=bonkers
https://example.com/cats:443?pattern=tabby ?pattern=tabby

O query ou "string de consulta" se refere ao search sem o ? inicial.

Consulte também Parâmetros de pesquisa.

Parâmetros de pesquisa

Referencie um item de dados transmitido em uma string de pesquisa (ou "string de consulta").

  • Por exemplo, para https://example.com/cats?pattern=tabby&mood=bonkers, a string de pesquisa tem dois parâmetros: pattern=tabby e mood=bonkers.

Domínio de segundo nível

O domínio antes de um domínio de nível superior.

  • Para o URL https://www.example.com, o domínio de segundo nível é example.com, um subdomínio do domínio de nível superior com.

  • Para https://example.org.au, o domínio de nível superior é au, o domínio de segundo nível é org e o domínio de terceiro nível é example. Neste exemplo, org.au é um subdomínio de au e example.org.au é um subdomínio de org.au.

Site

Site é definido pelo padrão HTML, junto com same-site, que inclui esquema e same-site sem esquema.

O site não está definido no padrão de URL ou na API JavaScript URL.

Neste contexto:

  • Para um URL HTTP ou HTTPS com um eTLD de uma única parte, como https://example.com, o site consiste no scheme, no eTLD e no rótulo antes disso. Por exemplo, para o URL https://www.example.com/cat, o site é https://example.com. Nesse URL, o eTLD é o mesmo que o domínio de nível superior.
  • Para eTLDs de várias partes, como co.uk, github.io ou sa.edu.au, o "site" consiste no scheme, no eTLD e no rótulo antes disso. Por exemplo, para o URL https://cat.example.co.uk/tabby, o site é https://example.co.uk, e para https://www.education.sa.gov.au, o site é https://education.sa.gov.au.
URL Site (com esquema e eTLD +1)
https://cat.example.com/tabby ("https", "example.com")
https://cat.example.co.uk/tabby ("https", "example.co.uk")

Ao contrário da origem, o site não inclui a porta.

Subdomínio

Um domínio dentro de um domínio de nível superior.

Para sites com domínios de nível superior de uma parte, como com ou org, as partes antes do domínio de nível superior, cada uma separada por um ponto.

  • www.example.com é um subdomínio de example.com.
  • support.api.example.org é um subdomínio de api.example.org, que é um subdomínio de example.org.

Para eTLDs de duas partes em que apenas registros de terceiro nível são permitidos(ou seja, entradas na lista de sufixos públicos, como co.uk e github.io), os subdomínios são as partes do nome de domínio antes disso.

  • Por exemplo: cat.example.co.uk é um subdomínio de example.co.uk.

Fragmento de texto

Um tipo de fragmento que permite vincular e destacar um intervalo de texto em uma página. Quando um usuário segue um link com um fragmento de texto, o navegador tenta localizar, rolar até e destacar o texto na página.

Um fragmento de texto começa com :~:text= seguido pelo termo de pesquisa.

Por exemplo, para vincular à primeira ocorrência do texto "fragmento" nesta página, use o URL https://web.dev/articles/url-parts#:~:text=fragment.

Saiba mais: Fragmentos de texto.

Domínio de nível superior (TLD)

Um nome de domínio listado no Banco de dados da zona raiz, como com ou org. Alguns domínios de nível superior são domínios de nível superior com código de país, como uk e tv.

Ao descrever as partes de um URL HTTP ou HTTPS, o TLD é o nome de domínio que segue o ponto final.

  • Para https://example.org, o domínio de nível superior do URL é org.
  • Para https://example.org.au, o domínio de nível superior do URL é au, e org é um domínio de segundo nível (embora org também seja um domínio de nível superior). org.au é um eTLD de duas partes.

A lista de sufixos públicos de eTLD inclui domínios com uma, duas ou mais partes. Portanto, um TLD também pode ser um eTLD. Exemplo:

  • Para https://example.com, o eTLD do URL é com, que também é um TLD.

Nome de usuário

Um nome de usuário e uma senha opcionais podem ser fornecidos no início do URL, mas isso foi descontinuado por motivos de segurança e será ignorado em muitos casos.

Por exemplo, com https://user123:password1@example.com, o nome de usuário é user123. Observe que o nome de usuário (e a senha) estão em texto simples e não criptografados. Se o nome de usuário tiver os símbolos : ou @, eles precisarão ser codificados em URL como %3A e %40, respectivamente.


Saiba mais