Qué significa %20 en una URL: La Explicación Técnica
En las URLs, los espacios no están permitidos como caracteres literales. La web utiliza un estándar llamado percent-encoding (también conocido como URL encoding) para representar caracteres especiales.
%20 es la representación hexadecimal del carácter de espacio en ASCII.
¿Por qué 20?
- Espacio en ASCII = decimal 32
- 32 en hexadecimal = 20
- Formato de percent-encoding = % + valor hexadecimal
Entonces:
Espacio → ASCII 32 → Hex 20 → %20
Esa es toda la lógica detrás de que %20 sea un espacio.
Ejemplo
Texto original:
https://example.com/my page.html
Versión codificada:
https://example.com/my%20page.html
Los navegadores convierten automáticamente los espacios en %20 en formato URL Encode para que la dirección sea válida.
URL Encoding %20: Por Qué Existe
Las URLs deben seguir estándares estrictos definidos por RFC 3986. Solo ciertos caracteres están permitidos directamente. Otros deben ser codificados.
Caracteres que normalmente requieren codificación:
- Espacio
- ?
- &
- =
- %
- Caracteres no ASCII (e.g., é, ü)
Ejemplo: Parámetros de consulta
Sin codificar (no válido):
https://example.com/search?q=red shoes
Codificado:
https://example.com/search?q=red%20shoes
Sin codificación, el navegador no puede interpretar correctamente la estructura de la URL..
%20 en direcciones web frente a otros caracteres codificados
Aunque el %20 es el más común, muchos caracteres se codifican de manera similar.
|
Carácter |
ASCII (diciembre) |
Hex |
Codificado |
|
Espacio |
32 |
20 |
%20 |
|
! |
33 |
21 |
%21 |
|
" |
34 |
22 |
%22 |
|
# |
35 |
23 |
%23 |
|
& |
38 |
26 |
%26 |
|
/ |
47 |
2F |
%2F |
Comprender esta tabla ayuda al depurar URLs manualmente.
Significado de %20 en Rutas de URL vs Cadenas de Consulta
El comportamiento de la codificación difiere ligeramente dependiendo de dónde aparezca.
1. Segmento de Ruta
https://example.com/files/My%20Document.pdf
Aquí, %20 representa un espacio literal en el nombre del archivo.
2. Parámetros de Consulta
https://example.com/search?keyword=machine%20learning
Aquí, representa un espacio dentro de un valor de consulta.
3. Identificadores de Fragmento
https://example.com/page#Section%202
Incluso los anclajes pueden contener espacios codificados.
Http %20 y la Interpretación del Servidor
Los servidores decodifican automáticamente los valores codificados con percent-encoding antes de procesar las solicitudes.
Por ejemplo:
GET /products/Red%20Shoes HTTP/1.1
El servidor recibe:
/products/Red Shoes
Este paso de decodificación ocurre:
- El navegador codifica caracteres inseguros.
- Se envía la solicitud HTTP.
- El servidor decodifica.
- La aplicación procesa la cadena legible.
Por eso los desarrolladores rara vez ven %20 dentro de la lógica de la aplicación a menos que estén registrando URLs sin procesar.
Ejemplos Prácticos para Desarrolladores
Ejemplo 1: Codificación en JavaScript
encodeURIComponent(“red shoes”);
Output:
red%20shoes
Ejemplo 2: Decodificación en JavaScript
decodeURIComponent(“red%20shoes”);
Output:
red shoes
Ejemplo 3: Python
import urllib.parse
encoded = urllib.parse.quote(“data science”)
print(encoded)
Salida:
data%20science
Decodificación:
urllib.parse.unquote("data%20science")
Cuándo No Debe Usarse %20
En las cadenas de consulta, los espacios a veces pueden aparecer como +.
Ejemplo:
https://example.com/search?q=red+shoes
En envíos de formularios usando application/x-www-form-urlencoded, el espacio se codifica como +, no como %20.
Diferencia importante:
- %20 → codificación estándar con percent-encoding
- + → caso especial para datos de formularios
Esta distinción es importante en el análisis del backend.
SEO y %20 en URLs
Los motores de búsqueda manejan correctamente los espacios codificados. Sin embargo, las mejores prácticas sugieren:
- Evitar espacios en las URLs por completo.
- Usar guiones (-) en su lugar.
Preferido:
https://example.com/red-shoes
En lugar de:
https://example.com/red%20shoes
¿Por Qué?
- Estructura más limpia
- Mejor legibilidad
- Menos pasos de codificación
- Menor riesgo de problemas al copiar y pegar
Errores Comunes y Consejos de Depuración
1. Doble Codificación
Incorrecto:
red%2520shoes
Aquí %25 representa %, lo que significa que la cadena fue codificada dos veces.
2. Construcción Manual de URL
Evita construir URLs mediante concatenación de cadenas:
“/search?q=” + userInput
En su lugar:
“/search?q=” + encodeURIComponent(userInput)
3. Interpretación Incorrecta de Barras Codificadas
%2F representa /. Si se decodifica incorrectamente, puede cambiar la jerarquía de la ruta.
Resumen: Por Qué %20 Aparece en las URLs
Para resumir claramente:
- %20 es un espacio
- Es parte de percent-encoding
- Asegura que las URLs sigan siendo válidas y legibles por máquinas
- Los navegadores codifican automáticamente
- Los servidores decodifican automáticamente
- Es necesario para una transmisión HTTP segura
Comprender la codificación es crítico cuando:
- Depuración de API.
- Trabajar con redireccionamientos.
- Gestionar contenido generado por los usuarios.
- Gestionar descargas de archivos.
- Optimizar URL para SEO.
Cuando veas %20 en una dirección web, simplemente significa que se ha codificado un espacio de forma segura para su transporte a través de la web.
Los marcos modernos gestionan esto automáticamente, pero saber cómo funciona ayuda a prevenir errores de codificación, problemas de seguridad y solicitudes malformadas en los sistemas de producción.