Lição 1
O que é codificação URL?
Caracteres reservados, segurança ASCII e por que URLs precisam de codificação.
URLs são endereços de texto compactos. Para manter o parse previsível, especificações definem caracteres reservados (como ?, #, /, &) com significado estrutural. O que poderia colidir com essa estrutura — ou não ser transmitido com segurança como texto puro — precisa de outra representação. Codificação percentual é a resposta usual: sequências como %20 representam bytes brutos no fluxo de caracteres da URL.
A prática moderna segue RFC 3986 para sintaxe URI genérica e padrões relacionados para esquemas como https. O passo de codificação costuma ser chamado “codificação URL”, mas tecnicamente você está codificando octetos em percentual, não inventando um alfabeto novo.
Reservados vs não reservados
Caracteres não reservados podem aparecer literalmente quando pertencem àquele componente:
A–Z a–z 0–9 - _ . ~
Caracteres reservados têm papéis de sintaxe. Exemplos:
: / ? # [ ] @ ! $ & ' ( ) * + , ; =
Se um reservado deve ser codificado depende do componente que você edita (scheme, authority, path, query, fragment). Lembre a ideia central: se um caractere pode ser lido como pontuação em vez de dado, codifique quando ele carrega significado de dado.
Por que texto não ASCII vira bytes percentuais
URLs são historicamente tendem a US-ASCII. Caracteres fora do ASCII (café, 北京, emojis) viram bytes UTF-8; cada byte problemático aparece como %HH.
espaço → muitas vezes %20
é (U+00E9 em UTF-8) → %C3%A9
Decoders percorrem pares % para recuperar bytes e interpretam (tipicamente UTF-8) para reconstruir Unicode.
Codificação não é criptografia
Codificação percentual muda representação, não significado secreto. Qualquer um pode decodificar. Trate como higiene de transporte — como escape em HTML — não como confidencialidade.
https://example.com/search?q=café
⇒ bytes UTF-8 de café podem aparecer como caf%C3%A9 conforme a ferramenta
Situações comuns que exigem codificação
- Espaços em nomes de arquivo ou termos de busca colados na URL
- E comercial como dado literal (
Tom & Jerry) dentro de valores de query - Barras ou interrogações quando são identificadores opacos, não separadores
- Internacionalização de hostnames via punycode (IDNA) — mecanismo relacionado mas distinto de
%em paths/queries
Entender onde a estrutura termina e os dados opacos começam é a habilidade central. As próximas lições detalham regras de % e comportamento típico de bibliotecas.