O Que É Codificação de URL e Por Que Ela É Importante?

25 Apr 2026 1,402 words

O Que É Codificação de URL e Por Que Ela É Importante?

A codificação de URL, também conhecida como codificação percentual, converte caracteres em um formato que pode ser transmitido com segurança em URLs. Toda vez que você visita um site, envia um formulário ou faz uma requisição de API, a codificação de URL trabalha nos bastidores para garantir que caracteres especiais e texto não-ASCII sejam transmitidos corretamente. Sem a codificação de URL, ações simples como pesquisar por "café & chá" quebrariam a estrutura da URL, potencialmente causando erros ou vulnerabilidades de segurança.

Entendendo o Problema

URLs têm um conjunto restrito de caracteres permitidos, conforme definido pelo RFC 3986. Os caracteres permitidos se enquadram em duas categorias:

  • Caracteres reservados: :, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =
  • Caracteres não reservados: A-Z, a-z, 0-9, -, ., _, ~

Qualquer caractere fora desses conjuntos deve ser codificado. Até mesmo caracteres reservados devem ser codificados se forem usados em um contexto onde normalmente teriam significado especial. Por exemplo, o caractere & é reservado para separar parâmetros de consulta. Se você quiser incluir um & literal em um valor de parâmetro, ele deve ser codificado como %26.

Por Que a Codificação de URL É Importante

1. Preservar a Estrutura da URL

Caracteres especiais como ?, & e # têm significados específicos em URLs. O ? marca o início da string de consulta, & separa parâmetros de consulta, e # indica um identificador de fragmento. Se a entrada do usuário contiver qualquer um desses caracteres, eles devem ser codificados para evitar que a URL seja mal interpretada.

Considere uma consulta de pesquisa por "Perguntas & Respostas". Sem codificação, esta URL estaria quebrada:

https://exemplo.com/buscar?q=Perguntas & Respostas

O navegador interpreta & Respostas como um segundo parâmetro de consulta chamado Respostas em vez de parte do termo de pesquisa. A versão codificada preserva corretamente o significado pretendido:

https://exemplo.com/buscar?q=Perguntas%20%26%20Respostas

2. Lidar com Caracteres Especiais

Espaços não são permitidos em URLs. Eles devem ser codificados como %20 ou + (este último apenas em strings de consulta). Da mesma forma, caracteres como letras acentuadas (é, ü, ñ), símbolos (£, ©, ®) e escritas não latinas (Chinês, Árabe, Cirílico) devem ser codificados. A codificação de URL converte estes para um sinal de porcentagem seguido pelos valores de byte UTF-8 em hexadecimal.

3. Segurança

A codificação de URL é uma medida de segurança crítica contra ataques de injeção. Atacantes podem manipular URLs para injetar conteúdo malicioso, redirecionar usuários para sites de phishing ou realizar ataques de cross-site scripting (XSS). Ao codificar a entrada do usuário antes de incluí-la em URLs, você impede que atacantes saiam da estrutura pretendida da URL. Por exemplo, a codificação impede que um atacante injete um esquema javascript: ou adicione parâmetros de consulta inesperados.

4. Internacionalização (Suporte a IRI)

A web moderna suporta Identificadores de Recursos Internacionalizados (IRIs), que permitem caracteres não-ASCII em URLs. No entanto, IRIs devem ser convertidos para URLs ASCII codificados antes da transmissão. Este processo, chamado de Internacionalização de Nomes de Domínio em Aplicações (IDNA), codifica nomes de domínio usando Punycode e codifica o resto da URL usando codificação percentual. Isso garante que os usuários possam digitar URLs em seu idioma nativo, mantendo a compatibilidade com a infraestrutura subjacente somente ASCII.

Como Funciona a Codificação de URL

Os caracteres são codificados como % seguido por dois dígitos hexadecimais representando o valor do byte do caractere em UTF-8 (ou ASCII para caracteres de um byte). Aqui está uma tabela de codificações comuns:

Caractere Codificado Motivo
Espaço %20 Não permitido em URLs
! %21 Caractere reservado
" %22 Não permitido
# %23 Identificador de fragmento
$ %24 Reservado
% %25 O próprio caractere de escape
& %26 Separador de consulta
' %27 Reservado
( %28 Reservado
) %29 Reservado
+ %2B Reservado (espaço na consulta)
, %2C Reservado
/ %2F Separador de caminho
: %3A Reservado
; %3B Reservado
< %3C Não permitido
> %3E Não permitido
? %3F Início da consulta
@ %40 Reservado
[ %5B Reservado
] %5D Reservado
~ %7E Na verdade permitido, mas às vezes codificado

Observe que o próprio sinal de porcentagem é codificado como %25. Isso é necessário porque % introduz um caractere codificado, então um sinal de porcentagem literal deve ser escapado.

Codificação de URL em Programação

JavaScript

JavaScript fornece duas funções para codificação de URL com propósitos diferentes:

// encodeURI: Codifica uma URI completa, preservando caracteres que têm significado especial
const url = encodeURI("https://example.com/search?q=hello world");
// Resultado: https://example.com/search?q=hello%20world
// Nota: encodeURI NÃO codifica &, ?, #, etc.

// encodeURIComponent: Codifica um componente de URI (valor de parâmetro de consulta)
const query = encodeURIComponent("coffee & tea");
// Resultado: coffee%20%26%20tea
// Isso codifica todos os caracteres especiais, tornando seguro para valores de parâmetros

// Decodificação
const decoded = decodeURIComponent("coffee%20%26%20tea");
// Resultado: coffee & tea

A distinção crítica: use encodeURIComponent para entrada do usuário que vai para parâmetros de consulta, segmentos de caminho ou identificadores de fragmento. Use encodeURI apenas ao codificar uma URL inteira que já tem sua estrutura definida.

Python

O módulo urllib.parse do Python fornece funcionalidade equivalente:

from urllib.parse import quote, unquote, urlencode

# Codificar um único valor
encoded = quote("coffee & tea", safe='')
# Resultado: coffee%20%26%20tea

# Codificar parâmetros de consulta
params = urlencode({'q': 'coffee & tea', 'page': 1})
# Resultado: q=coffee+%26+tea&page=1

# Decodificar
decoded = unquote("coffee%20%26%20tea")
# Resultado: coffee & tea

Outras Linguagens

  • PHP: urlencode() e urldecode()
  • Ruby: URI.encode() e URI.decode()
  • Java: URLEncoder.encode() e URLDecoder.decode()
  • C#: HttpUtility.UrlEncode() e HttpUtility.UrlDecode()

Todas as principais linguagens de programação fornecem funções nativas de codificação de URL. Sempre use essas funções de biblioteca em vez de escrever as suas próprias, pois elas lidam corretamente com casos extremos.

Erros Comuns e Como Evitá-los

Erro 1: Codificar uma URL Inteira

Aplicar encodeURIComponent (ou equivalente) a uma URL inteira codificará os caracteres ://, ? e /, quebrando a estrutura da URL. Sempre codifique apenas os componentes individuais. Use encodeURI para a URL completa ou codifique cada valor de parâmetro separadamente.

Erro 2: Dupla Codificação

A dupla codificação ocorre quando você codifica um texto que já está codificado. Por exemplo, codificar %20 novamente produz %2520 (o % se torna %25). Isso acontece frequentemente quando os dados passam por múltiplos estágios de processamento. Para evitar isso, estabeleça uma política clara de codificação: codifique uma vez no ponto de entrada do usuário e decodifique uma vez no ponto de uso.

Erro 3: Esquecer de Codificar a Entrada do Usuário

Este é o erro mais perigoso. Qualquer entrada do usuário que apareça em uma URL deve ser codificada, incluindo:

  • Parâmetros de consulta de pesquisa
  • Valores de campos de formulário em requisições GET
  • Segmentos de caminho de URL derivados de dados do usuário
  • Identificadores de fragmento

Deixar de codificar a entrada do usuário pode levar a funcionalidades quebradas, corrupção de dados ou vulnerabilidades de segurança.

A Ferramenta Codificador/Decodificador de URL

A ferramenta Codificador/Decodificador de URL no Help2Code fornece uma maneira fácil de codificar e decodificar componentes de URL. Cole seu texto, clique em codificar ou decodificar, e obtenha o resultado instantaneamente. Isso é útil para depurar problemas de URL, preparar requisições de API ou aprender como a codificação funciona experimentando com diferentes entradas.

Conclusão

A codificação de URL é um conceito fundamental no desenvolvimento web que garante que os dados sejam transmitidos de forma segura e correta pela internet. Ao entender como ela funciona e quando usá-la, você pode construir aplicações web mais robustas e seguras. Sempre codifique a entrada do usuário, use a função de codificação correta para o contexto e nunca faça dupla codificação. A ferramenta Codificador/Decodificador de URL é um recurso útil para testar e depurar suas necessidades de codificação.


About this article

Aprenda o que é codificação de URL, por que ela é importante para o desenvolvimento web e como usá-la corretamente.


Related Articles


Related Tools

Help2Code Logo
Menu