Na maioria das vezes, não há problema em dizer coisas como "Comprei um domínio" ou "Nossas imagens estã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 variedade 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. Portanto, este
documento fornece exemplos e links para o padrão de URL, em vez de
tentar explicações completas.
Você pode usar o JavaScript para extrair os nomes dos componentes de URL definidos pela API de 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 conferir como as partes da string do URL são nomeadas. Você também pode abrir isso em uma guia separada em url-parts.glitch.me.
Os nomes das partes do URL estão listados alfabeticamente 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.
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 especificado). Cada parte do nome de domínio é conhecida como 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: de segundo nível, de 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 Public Suffix List é uma lista de todos os sufixos públicos conhecidos e é atualizada com frequência. Navegadores, incluindo o Chromium e o Firefox, usam a lista nos builds.
eTLD+1
Consulte Domínio registrável.
Um eTLD e 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 do URL, mas é comumente usado para se referir à parte final do URL que não é um caminho com base na suposição, geralmente incorreta, de que o URL é associado diretamente a uma estrutura de diretório.
Por exemplo, com https://example.com/dir/file.html
, file.html
pode ser chamado de nome de arquivo.
O valor do nome do arquivo também é usado pelos navegadores para nomear um recurso se ele for feito o download.
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 detabby
.
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 de URL, e não pelo fragmento.
Nome de domínio totalmente qualificado (FQDN)
Um endereço completo de um site ou servidor que é associado a 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 de URL, e não pelo fragmento.
Host
Conforme definido no padrão de URL, um host pode ser um nome de domínio, endereço IP v4, endereço IPv6, host opaco ou host vazio.
- A definição do padrão de URL de
host
não inclui a porta. URL.host
inclui a porta, a menos que ela seja padrão para o 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 outro lugar pelo padrão
de URL. Consulte Representação do 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
faz referência ao padrão HTML para
plano de fundo.
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 após o domínio e a porta (se definida), incluindo um filename (se definido), mas sem 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 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 sem sinal de 16 bits: em outras palavras, um número inteiro entre 0 e 65.535.
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 vai retornar uma string vazia se a porta for o padrão para o 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 de :
(por exemplo, http:
ou https:
).
protocol
está disponível na API de 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 única parte, como
com
ouorg
(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
ouexample.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
egithub.io
, o domínio de nível superior de duas partes ("sufixo público") e o nome de domínio de terceiro nível logo antes disso. Por exemplo,example.org.au
ouexample.github.io
. - Para eTLDs com três ou mais partes, o eTLD e o domínio antes disso.
Esquema
A parte do URL (antes de ://
) que define o protocolo de rede (ou a ação a ser realizada
pelo agente do usuário) quando uma solicitação é feita para 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.
Pesquisar
Um ponto de interrogação seguido por uma série de pares de chave-valor que representam parâmetros e os valores deles, 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
Refere-se a 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
emood=bonkers
.
Domínio de segundo nível
O domínio antes de um domínio de nível superior.
No URL
https://www.example.com
, o domínio de segundo nível éexample.com
, um subdomínio do domínio de nível superiorcom
.Para
https://example.org.au
, o domínio de nível superior éau
, o de segundo nível éorg
e o de terceiro nível éexample
. Neste exemplo,org.au
é um subdomínio deau
, eexample.org.au
é um subdomínio deorg.au
.
Site
Site é definido pelo padrão HTML, junto com same-site, que inclui esquema e schemeless same-site.
O site não é 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 noscheme
, no eTLD e no rótulo antes disso. Por exemplo, para o URLhttps://www.example.com/cat
, o site éhttps://example.com
. Para este URL, o eTLD é o mesmo que o domínio de nível superior. - Para eTLD de várias partes, como
co.uk
,github.io
ousa.edu.au
, o "site" consiste emscheme
, eTLD e rótulo antes disso. Por exemplo: para o URLhttps://cat.example.co.uk/tabby
, o site éhttps://example.co.uk
, e parahttps://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 porta.
Subdomínio
Um domínio dentro de um domínio de nível mais alto.
Para sites com domínios de nível superior de uma única 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 deexample.com
.support.api.example.org
é um subdomínio deapi.example.org
, que é um subdomínio deexample.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 deexample.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 "fragment"
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
, eorg
é um domínio de segundo nível, mesmo queorg
também seja um domínio de nível superior.org.au
é um eTLD de duas partes.
A Lista de sufixos públicos de eTLDs 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
. O nome de usuário (e a senha!) está em texto simples, não criptografado.
Se o nome de usuário tiver os símbolos :
ou @
, eles precisam ser codificados em URL para %3A
e %40
, respectivamente.
Saiba mais
- WHATWG: URL Living Standard (em inglês)
- WHATWG: HTML Living Standard (em inglês)
- API URL
- Entenda o que são "mesmo site" e "mesma origem"
- RFC: Localizadores uniformes de recursos (URLs)
- RFC: URIs, URLs e URNs
- Banco de dados de zona raiz (diretório de TLDs)
- Lista de sufixos públicos (diretório de eTLDs: "Um sufixo público é um conjunto de nomes DNS ou caracteres curinga concatenados com pontos. Ele representa a parte de um nome de domínio que não está sob o controle do registrante individual.")
- Glossário da ICANN
- O que é um nome de domínio totalmente qualificado?
- De quantas maneiras é possível dividir um URL e nomear as partes?
- Glossário do MDN Web Docs
- O que é um URL?
- Histórico do URL