Espaços em URLs: A Necessidade de Codificação Segundo o RFC
Resposta Rápida
De acordo com a convenção, espaços em URLs não são permitidos. Eles devem ser substituídos por códigos especiais — %20
ou +
. Assim, a string "meu arquivo" na barra de endereço deve ser escrita como meu%20arquivo
ou meu+arquivo
.
Exemplos
https://exemplo.com/meu%20arquivo
https://exemplo.com/meu+arquivo
A Necessidade de Codificação de Espaços em URLs
Espaços podem causar falhas porque podem ser interpretados como caracteres de fim de linha nas requisições HTTP. Para garantir a segurança e clareza de suas URLs, a codificação de espaços é obrigatória. Lembre-se, espaços não codificados ou omitidos acidentalmente causaram inúmeros problemas para desenvolvedores no passado. Não adicione seu nome a essa lista!
Alternativas para Espaços em URLs
Se você está preocupado com a legibilidade e SEO, é recomendado usar hífens (-
) e sublinhados (_
) em vez de %20
ou +
. Estes caracteres tornam as URLs mais fáceis de ler e mais favoráveis aos motores de busca.
Lida com Espaços em Navegadores Modernos
Navegadores modernos, como o Firefox, automaticamente codificam espaços em URLs. É importante notar que nem todos os navegadores são tão flexíveis, e versões mais antigas podem lhe fazer sentir saudades dos métodos utilizados anteriormente.
Visualização
🏠 = URL/site
🐿️ = Espaço
🥜 = Espaço codificado
É bom quando tudo está organizado:
URL sem bagunça = 🏠 (https://exemplo.com/PaginaInicial)
URL com espaços = 🏠🐿️ (https://exemplo.com/Pagina Inicial)
Para evitar que espaços causem problemas, usamos codificação:
Espaço: '🐿️'
Espaço codificado: '🥜' => '%20'
URL com espaço codificado: 🏠🔒(https://exemplo.com/Pagina%20Inicial)
Mantenha sua propriedade virtual livre de espaços! 🏘️🚫🐿️
Padrões: Ontem e Hoje
Adeus, RFC 1738, e bem-vindo, RFC 3986 — um novo padrão mais elevado chegou. De acordo com o novo padrão, todos os caracteres inválidos devem ser representados usando codificação percentual. É preferível aderir aos padrões modernos. Neste caso, exceções certamente não são aceitáveis!
Cantinho PHP: Codificando Espaços
Ao seguir a via PHP, esteja atento à codificação de URLs. O PHP é particularmente exigente quanto à análise precisa de URLs, e quaisquer erros podem levar a problemas inesperados. Lembre-se: dominar a codificação é uma habilidade crucial ao trabalhar com tecnologias de servidor!
Codificando Espaços em Consultas de URL
Embora o caractere +
seja usado para denotar espaços em consultas de URL, não é um substituto completo. É simplesmente outro método de codificação que é comumente usado ao enviar formulários, contribuindo para a consistência de dados. Não deixe que %20
roube todo o brilho!
Materiais Úteis
- Padrão URL - Uma especificação da WHATWG descrevendo os caracteres válidos em URLs.
- RFC 3986 - Identificador Uniforme de Recurso (URI): Sintaxe Genérica - A especificação padrão da sintaxe URI, contendo uma lista de caracteres válidos.
- encodeURIComponent() - JavaScript | MDN - Um guia detalhado da MDN sobre a codificação adequada de URLs em JavaScript.
- html - É permitido usar espaços em URLs? - Stack Overflow - Uma discussão sobre espaços em URLs no Stack Overflow.
- Codificação Percentual - Wikipedia - Uma visão geral da codificação percentual, incluindo regras para aplicá-la a espaços.
- Padrão HTML - Uma seção na especificação HTML5 da WHATWG dedicada a URLs, descrevendo padrões para o uso de URLs.
- O que é codificação de URL e como funciona? | URLEncoder - Um artigo sobre a aplicação e o propósito da codificação de URL, com exemplos práticos e recomendações.