Parser de URL
URLs (Uniform Resource Locators) identificam recursos na web. Esta ferramenta decompoe URLs em seus componentes: esquema, host, porta, caminho, parametros de consulta e fragmento. Decodifica automaticamente valores codificados em porcentagem, processa nomes de dominio internacionalizados (IDN) com conversao Punycode e pode detectar dados incorporados como Base64 ou JSON em parametros.
Especificacoes
Casos de Uso Comuns
- Depurar URLs de redirecionamento OAuth 2.0 e parametros de callback
- Inspecionar URLs de webhook e seus parametros de consulta
- Analisar parametros de rastreamento (UTM, dados de referrer)
- Decodificar deep links moveis (app://, esquemas personalizados)
- Resolver problemas de roteamento de URL
- Converter nomes de dominio internacionalizados entre Unicode e Punycode
Funcionalidades
- Analisar todos os componentes da URL (esquema, host, porta, caminho, consulta, fragmento)
- Decodificar automaticamente valores codificados em porcentagem (URL-encoded)
- Analisar query string em pares chave-valor
- Converter nomes de dominio internacionalizados (IDN) entre Unicode e Punycode
- Detectar e decodificar Base64 ou JSON em valores de parametros
- Copiar componentes individuais para a area de transferencia
Exemplos
Callback OAuth
Experimente →Um callback de autorizacao OAuth 2.0 com parametros code e state.
https://app.example.com/callback?code=abc123&state=xyz789&redirect_uri=https%3A%2F%2Fexample.comDominio Internacionalizado (Punycode)
Experimente →Uma URL com nome de dominio codificado em Punycode (prefixo xn-- indica IDN).
https://xn--mnchen-3ya.de/pathDominio Internacionalizado (Unicode)
Experimente →Uma URL com nome de dominio Unicode que sera convertido para Punycode.
https://münchen.de/pathDicas
- A codificacao percentual substitui caracteres inseguros por %XX, onde XX e o valor hexadecimal.
- O fragmento (#) nunca e enviado ao servidor; e apenas do lado do cliente.
- Parametros de consulta podem aparecer varias vezes com a mesma chave.
- Alguns caracteres como @ e : em userinfo precisam ser codificados.
- Use encodeURIComponent() para valores de parametros, encodeURI() para URLs completas.
Entendendo Parser de URL
URLs (Uniform Resource Locators) sao o sistema de enderecamento da web, definidas pela RFC 3986 como um tipo especifico de URI (Uniform Resource Identifier). Uma URL consiste em varios componentes: um esquema (protocolo como https), uma autoridade (host, porta opcional, userinfo opcional), um caminho, uma query string opcional de parametros chave-valor e um identificador de fragmento opcional.
A codificacao percentual (codificacao de URL) e o mecanismo para representar caracteres especiais em URLs. Caracteres fora do conjunto nao reservado (A-Z, a-z, 0-9, -, _, ., ~) devem ser codificados como %XX, onde XX e o valor hexadecimal do byte. Espacos tornam-se %20 (ou + em query strings). Caracteres nao-ASCII sao primeiro codificados como bytes UTF-8, e entao cada byte e codificado em porcentagem.
Query strings carregam parametros como pares key=value separados por caracteres &. Aplicacoes web os utilizam para termos de busca, paginacao, filtragem, ordenacao e rastreamento (parametros UTM). URLs de redirecionamento OAuth 2.0 carregam codigos de autorizacao e tokens de estado em parametros de consulta. Valores complexos podem ser eles proprios URL-encoded, criando camadas de codificacao que requerem decodificacao cuidadosa.
Nomes de dominio internacionalizados (IDN) usam codificacao Punycode (RFC 3492) para representar caracteres nao-ASCII em nomes de dominio. O prefixo xn-- sinaliza um rotulo codificado em Punycode. Por exemplo, muenchen.de se torna xn--mnchen-3ya.de. Essa codificacao garante compatibilidade com o sistema DNS apenas ASCII, ao mesmo tempo que suporta nomes de dominio em qualquer script.
JavaScript oferece duas funcoes para codificacao de URL que servem propositos diferentes. encodeURI codifica uma URI completa, preservando caracteres com significado estrutural em URLs (como : / ? # @ e =). encodeURIComponent codifica um unico componente de URI como um valor de parametro de consulta, codificando todos os caracteres especiais incluindo / e &. Use encodeURIComponent para valores de parametros e encodeURI apenas ao codificar uma URL completa. O identificador de fragmento (tudo apos #) e definido pela RFC 3986 como apenas do lado do cliente — navegadores o utilizam para navegacao na pagina e roteamento do lado do cliente em aplicacoes de pagina unica, mas ele nunca e incluido em requisicoes HTTP enviadas ao servidor.
Punycode e a codificacao que torna possiveis os nomes de dominio internacionalizados dentro do sistema DNS apenas ASCII. Dominios contendo caracteres nao-latinos sao armazenados no DNS usando Punycode com um prefixo xn--, entao muenchen.de e armazenado como xn--mnchen-3ya.de. Navegadores exibem a forma Unicode para os usuarios enquanto usam a forma Punycode para resolucao DNS nos bastidores.
Query strings podem conter multiplos valores para o mesmo nome de parametro, como ?color=red&color=blue. Diferentes frameworks lidam com isso de maneiras distintas — alguns retornam o ultimo valor, alguns o primeiro e alguns retornam um array de todos os valores. Esta ferramenta mostra todas as ocorrencias de parametros. Em JavaScript, URLSearchParams.getAll() recupera todos os valores para uma chave repetida em vez de apenas o primeiro ou ultimo.