¿Por qué las URL tienen caracteres extraños como %20? (Secretos de la codificación de URL)
¿Alguna vez has copiado una URL de tu navegador y la has pegado en un mensajero, solo para encontrar que se convirtió en un lío de caracteres %EA%B0%80...?
Específicamente, los espacios se convierten en %20. ¿Por qué las URL no pueden simplemente usar caracteres tal como son en lugar de convertirlos en este formato complejo?
El nombre oficial de este fenómeno es Codificación de URL o Codificación porcentual.
1. Las Primeras Reglas de Internet: ASCII
Cuando se construyó Internet por primera vez, el estándar para la comunicación informática era ASCII. ASCII es un conjunto de caracteres de 7 bits que incluye solo letras inglesas, números y algunos caracteres especiales.
El estándar de URL (RFC 3986) limitó estrictamente los caracteres permitidos en una URL.
- Caracteres No Reservados:
A-Z,a-z,0-9,-,_,.,~ - Caracteres Reservados:
:,/,?,#,&, etc. (Usados para la estructura de la URL)
Cualquier carácter que no esté en esta lista (como espacios, caracteres no ingleses u otros símbolos) tenía que convertirse en un formato compatible con ASCII para que el sistema lo entendiera.
2. Cómo Funciona la Codificación Porcentual
La regla de conversión es simple.
- Toma el valor de byte del carácter en hexadecimal.
- Prefíjalo con un signo
%.
Ejemplo: Espacio
En ASCII, un espacio tiene el valor decimal 32, que es 20 en hexadecimal.
Por lo tanto, un espacio se convierte en %20.
Ejemplo: Caracteres No ASCII
Para caracteres como emojis o letras de otros idiomas, se codifica la secuencia de bytes UTF-8. Si un carácter toma 3 bytes en UTF-8, se convierte en tres grupos codificados por porcentaje (por ejemplo, %E2%9C%A8 para ✨).
3. Seguridad y Estabilidad
La codificación de URL es importante no solo para la representación, sino también para la seguridad y la estabilidad.
Por ejemplo, ¿qué pasa si un valor de parámetro de URL contiene & o =?
search?query=A&B
El sistema podría malinterpretar esto como query=A y un nuevo parámetro B.
Al codificar & como %26 para enviar search?query=A%26B, el sistema puede interpretarlo correctamente como el carácter literal '&'.
Conclusión
Las cadenas de aspecto extraño como %20 son en realidad el resultado de los esfuerzos para mantener la historia y la compatibilidad de Internet.
Si bien las barras de direcciones del navegador muestran caracteres decodificados para comodidad del usuario, recuerda que detrás de escena, los signos de porcentaje todavía viajan ocupados a través de la red.
Explora herramientas relacionadas
Prueba estas herramientas gratuitas de Pockit