Ferramentas de URL
Codificação vs decodificação de URL: Qual é a diferença?
Um guia reversível e com reconhecimento de componentes para codificação e decodificação de URL.
Por Vigneshwaran Vijayakumar, desenvolvedor e editor | | Revisado sob o ClockTools política editorial
Índice
A codificação de URL converte caracteres inseguros ou significativos em um componente de URL em sequências de codificação percentual; a decodificação de URL converte sequências válidas de volta em caracteres legíveis. Codifique antes de inserir dados brutos em um componente. Decodifique quando precisar inspecionar ou usar um valor já codificado. O Codificador de URL ClockTools e o Decodificador de URL permitem testar ambas as direções sem alterar o texto original.
Escolha a direção da entrada
Se a entrada for dados legíveis por humanos, como summer shoes & bags, codifique-os antes de colocá-los em um valor de consulta. Se a entrada já contém sequências como %20 e você precisa dos caracteres originais, decodifique-a uma vez. O Padrão de URL WHATWG define conjuntos de codificação percentual para análise e serialização de URL; RFC3986 explica a forma das sequências de codificação percentual e os caracteres reservados.
| Você tem | Você precisa | Operação |
|---|---|---|
| Valor bruto da consulta | Componente seguro para URL | Codificar |
| Sequências de codificação percentual | Valor legível | Decodificar |
| URL completa já analisada | Um campo alterado | Modifique esse componente e depois serialize a URL |
Codificação não é criptografia. Torna a sintaxe inequívoca; não esconde informações confidenciais.
Siga um exemplo reversível
Comece com summer shoes & bags. A codificação de componentes produz summer%20shoes%20%26%20bags. Os espaços tornam-se %20 e o e comercial torna-se %26, portanto, são dados e não um separador. Decodificar esse resultado uma única vez restaura a frase original.
Na verificação ao vivo do ClockTools, uma amostra de 74 caracteres passou a ter 102 caracteres com 14 sequências de escape no modo Componente URI. Essas contagens descrevem apenas aquela amostra; entradas diferentes produzem totais diferentes.
Respeite os limites dos componentes de URL
Uma URL contém partes com sintaxe diferente: esquema, host, caminho, consulta e fragmento. O fluxo de trabalho mais seguro é analisar o URL, alterar o valor pretendido e serializá-lo usando a API do seu ambiente. Codificar uma URL completa já montada pode transformar em sequências de escape separadores como :, /, ? e & que deveriam manter seu significado estrutural.
O caso do caractere de espaço merece atenção especial. A codificação percentual genérica representa um espaço como %20. A serialização de consulta no estilo de formulário HTML pode usar +. Leia Codificação de URL para um espaço para esse problema restrito de interoperabilidade; este artigo aborda direção de operação, escolha de componentes e reversão.
Evitar codificação dupla
A codificação dupla acontece quando o texto codificado é passado novamente por um codificador. Por exemplo, %20 pode se tornar %2520 porque % é codificado como %25. Rastreie se cada valor é bruto ou codificado, codifique em um limite e decodifique apenas quantas vezes o contrato de dados exigir. A RFC 3986 alerta que as strings codificadas por porcentagem não devem ser codificadas ou decodificadas mais de uma vez sem um motivo claro.
Ao depurar, copie o menor componente na ferramenta, decodifique uma vez e compare o resultado com o valor bruto esperado. Nunca cole segredos, tokens ou URLs privados em uma ferramenta na qual você não confia.
Perguntas frequentes
Qual é a diferença entre codificação e decodificação de URL?
A codificação transforma os caracteres em uma representação segura para transporte; a decodificação converte sequências válidas de codificação percentual de volta em caracteres legíveis.
Devo codificar um URL completo ou apenas um componente?
Geralmente codifique o valor ou componente que você está inserindo, não uma URL já montada com separadores significativos.
Por que às vezes um URL contém %2520?
Geralmente significa que %20 foi codificado novamente: o sinal de porcentagem tornou-se %25, produzindo um valor codificado duas vezes.
Um sinal de mais é sempre igual a um espaço?
Não. Alguns analisadores de consulta codificados em formulário tratam + como um espaço, enquanto a codificação percentual de URL genérica usa %20.

