Back

¿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.

  1. Toma el valor de byte del carácter en hexadecimal.
  2. 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.

TechURLEncodingWeb

Explora herramientas relacionadas

Prueba estas herramientas gratuitas de Pockit