URLs e Strings de Consulta
URLs e Strings de Consulta
A camada de URL implementa a análise no estilo WHATWG — o mesmo comportamento que os navegadores aplicam — de modo que URLs extraídas de documentos são resolvidas e normalizadas da mesma forma que em um agente de usuário real.
Análise e Validação
URL.parse() analisa uma URL absoluta ou relativa; URL.can_parse() responde se é válida sem construir um objeto. Falhas de análise lançam o URLParseError tipado.
Strings de Consulta
URLSearchParams lê e edita parâmetros de consulta: append(), get(), get_all(), has() e delete() cobrem o ciclo completo, preservando a semântica de múltiplos valores.
Dicas e Melhores Práticas
- Use
can_parse()para validação simples em filtros; construa comparse()somente quando precisar dos componentes - Lembre-se de que as chaves de consulta podem se repetir — use
get_all()quando um parâmetro puder aparecer mais de uma vez - Capture
URLParseErrorao invés de pré-validar com expressões regulares
Problemas comuns
| Problema | Causa | Correção |
|---|---|---|
| URL relativo falha ao analisar | Nenhuma base fornecida | Forneça a base conforme URL.parse() |
| Apenas o primeiro valor da consulta retornado | Usado get() em uma chave repetida | Use get_all() |
| Caracteres estranhos nos componentes | Normalização WHATWG em ação | Esperado — isso corresponde ao comportamento do navegador |
FAQ
A análise segue o padrão WHATWG?
Sim — a normalização e a divisão de componentes espelham o comportamento dos navegadores.
Como verifico uma URL sem analisá-la?
URL.can_parse() retorna validade sem construção de objeto.
Posso editar uma string de consulta no local?
Sim — URLSearchParams suporta ciclos de append/get/has/delete.
API Reference Resumo
| Classe/Método | Descrição |
|---|---|
URL.parse | Analisar um URL |
URL.can_parse | Verificação de validade sem construção |
URLSearchParams.append | Adicionar um parâmetro de consulta |
URLSearchParams.get_all | Todos os valores para uma chave |
URLParseError | Falha na análise tipada |