BrowserTools
Publicidade
Início / Rede / Analisador de URL

Analisador de URL

Decompõe qualquer URL no seu esquema, host, porta, caminho, parâmetros de consulta e hash, analisado localmente no teu navegador.

A carregar Analisador de URL… Se nada acontecer, ativa o JavaScript.

Um URL (Uniform Resource Locator) parece uma única cadeia, mas é na verdade um registo estruturado feito de vários componentes distintos, cada um com o seu próprio significado. Um URL completo como https://user:pass@example.com:8443/path/page?q=hello&lang=en#section reúne um esquema, credenciais opcionais, um host, uma porta opcional, um caminho, uma query string e um fragmento. Ler essas partes a olho é fácil de errar, sobretudo quando a query string é longa, contém caracteres codificados em percentagem ou repete a mesma chave mais do que uma vez. Um analisador divide o URL com precisão segundo as regras definidas no WHATWG URL Standard, as mesmas regras que todos os navegadores modernos seguem.

Perguntas frequentes

O URL que colo é enviado para um servidor?
Não. A análise acontece inteiramente no teu navegador usando as API integradas URL e URLSearchParams. O URL que introduzes, incluindo quaisquer tokens ou credenciais que contenha, nunca é transmitido, armazenado nem registado em lado nenhum. A ferramenta funciona totalmente sem ligação assim que a página é carregada.
Quais são as partes de um URL?
Um URL tem até sete partes: o esquema (como https), userinfo opcional (nome de utilizador e palavra-passe), o host (um domínio ou endereço IP), uma porta opcional, o caminho, uma query string opcional (a parte a seguir ao ponto de interrogação) e um fragmento opcional (a parte a seguir ao hash). Para https://example.com:8443/a/b?x=1#top, o esquema é https, o host é example.com, a porta é 8443, o caminho é /a/b, a consulta é x=1 e o fragmento é top.
Porque é que a porta aparece como predefinida em alguns URL?
Quando um URL usa a porta padrão do seu esquema (443 para https, 80 para http), o navegador deixa o campo da porta vazio porque está implícita. Esta ferramenta rotula esse caso como predefinida. Se incluíres explicitamente uma porta não padrão como :8443, ela é mostrada exatamente como está escrita.
Qual é a diferença entre host e hostname?
O hostname é apenas o domínio ou o endereço IP, por exemplo example.com. O host inclui o hostname mais a porta quando está presente uma porta não predefinida, por exemplo example.com:8443. Se não houver uma porta explícita no URL, host e hostname são idênticos.
Como são tratados os parâmetros de consulta repetidos?
URLSearchParams preserva cada ocorrência de uma chave por ordem, por isso uma query string como a=1&a=2 produz duas linhas separadas na tabela em vez de as juntar. Isto corresponde à forma como os servidores e as frameworks normalmente recebem os dados, onde as chaves repetidas são comuns para filtros de seleção múltipla e parâmetros do tipo array.
Descodifica os caracteres codificados em percentagem nos valores de consulta?
Sim. URLSearchParams descodifica automaticamente em percentagem tanto as chaves como os valores, por isso %20 aparece como um espaço e %40 aparece como @ na tabela. Se precisares de codificar ou descodificar um valor para o voltar a pôr num URL, a ferramenta URL Encoder trata dessa direção.
Porque é que recebo um erro de URL inválido?
O analisador URL nativo exige um URL absoluto com um esquema, como https://example.com. Entradas simples como example.com/page ou caminhos relativos como /page são rejeitados porque não há uma base contra a qual os resolver. Acrescenta um esquema como https:// ao início e o URL será analisado corretamente.
Consegue analisar esquemas não web como mailto ou ftp?
Sim, desde que a entrada seja um URL absoluto válido. Esquemas como ftp, ws, wss, file e mailto são todos analisados, embora alguns componentes (como o host ou a porta) possam estar vazios para esquemas que não os usam. Os campos mostrados refletem o que o padrão URL extrai para esse esquema.

Sobre Analisador de URL

Esta ferramenta usa as API nativas URL e URLSearchParams integradas no teu navegador, por isso os resultados correspondem exatamente à forma como um navegador, uma chamada fetch ou uma framework de servidor interpretariam o endereço. Mostra o esquema e o protocolo completo, qualquer nome de utilizador e palavra-passe incorporados na autoridade, o host e o hostname, a porta (ou uma nota de que se aplica a predefinida do esquema), o pathname, o origin calculado e o fragmento hash. A query string é separada numa tabela limpa de pares de chave e valor, com cada valor copiável individualmente, o que é muito mais rápido do que procurar por entre um muro de ampersands e sinais de igual.

Tudo corre localmente no teu navegador. O URL que colas nunca é enviado, registado nem transmitido a nenhum servidor, por isso é seguro inspecionar ligações que contenham tokens de acesso, identificadores de sessão, parâmetros assinados ou outros valores de consulta sensíveis. Os programadores recorrem a um analisador de URL ao depurar redirecionamentos, URL de retorno de OAuth, a sopa de parâmetros de rastreio das campanhas de marketing, endpoints de API com muitas opções de consulta ou ligações profundas em apps móveis. Se a entrada não for um URL absoluto válido, a ferramenta mostra um erro claro em vez de adivinhar.

O padrão de URL com que ninguém concordou durante décadas

Os URL foram formalizados pela primeira vez por Tim Berners-Lee no RFC 1738 lá em 1994, mas durante anos depois cada navegador, biblioteca e linguagem analisava-os de forma ligeiramente diferente. Os casos limite como as barras invertidas, os espaços no início e no fim, os dois pontos colocados de forma estranha e a codificação em percentagem no host causavam verdadeiros bugs de segurança, porque um analisador no servidor e um analisador no navegador podiam discordar sobre para que host um URL apontava de facto. Os atacantes exploravam essas divergências para passar para lá das listas de permitidos de URL e desencadear falsificações de pedido do lado do servidor.

Para acabar com o caos, o WHATWG publicou o URL Standard, uma especificação viva que define a análise como uma máquina de estados precisa e não como uma gramática solta. É crucial que a especificação tenha sido escrita para descrever o que os navegadores realmente fazem, incluindo as suas peculiaridades, de modo a que o algoritmo seja interoperável por construção. As classes URL e URLSearchParams expostas ao JavaScript implementam este mesmo algoritmo, que é a razão pela qual a saída desta ferramenta corresponde ao que a barra de endereços do teu navegador e as chamadas fetch veem.

Um detalhe subtil que o padrão fixa com clareza é a diferença entre os esquemas especiais (http, https, ws, wss, ftp, file) e tudo o resto. Os esquemas especiais recebem uma normalização adicional, como pôr o host em minúsculas e resolver a porta predefinida, enquanto os esquemas não especiais são tratados de forma mais literal. Essa distinção explica por que razão um URL https e um URL personalizado myapp com o mesmo texto a seguir aos dois pontos podem ser analisados em valores de componentes bastante diferentes.

Publicidade
Publicidade
Publicidade