Percent-encoding: hacer los URLs seguros
Los URLs (Uniform Resource Locator) solo pueden contener un subconjunto de caracteres ASCII. Caracteres como espacios, &, =, #, ? y todos los caracteres Unicode (letras acentuadas, ideogramas, emoji) no pueden aparecer directamente en un URL porque tienen significados especiales o no son soportados. El percent-encoding (definido en la RFC 3986) resuelve este problema sustituyendo cada caracter no seguro con % seguido de su codigo hexadecimal: el espacio se convierte en %20, & se convierte en %26, e con acento se convierte en %C3%A9.
Nuestro URL Encode/Decode maneja la codificacion y la decodificacion en ambas direcciones, soportando correctamente UTF-8, la doble codificacion, y las diferencias entre codificacion de path y query string. Es una herramienta esencial para los desarrolladores web que trabajan con APIs, parametros de busqueda, y cualquier escenario en el que los datos del usuario terminan en un URL.
Cuando y que codificar
La regla fundamental: codifica los valores, no la estructura del URL. Los caracteres que componen la estructura (://?&=#) no deben codificarse cuando funcionan como delimitadores. Solo deben codificarse cuando aparecen en los datos. Por ejemplo, si el parametro de busqueda es "a=b", el & en el URL es un delimitador (no codificado), pero el = en el valor debe codificarse: ?search=a%3Db. Los errores de codificacion estan entre los bugs mas comunes en las aplicaciones web.
Seguridad y URL encoding
La codificacion URL es fundamental para la seguridad web. La inyeccion de parametros URL es un vector de ataque: un input no codificado puede modificar la estructura del URL, agregar parametros no previstos, o causar comportamientos inesperados. Todos los frameworks web modernos codifican automaticamente los parametros URL, pero cuando construyes URLs manualmente (en clientes API, scripts, redirects), la codificacion correcta es responsabilidad del desarrollador.
Para otros tipos de codificacion usados en el desarrollo web, nuestro Base64 Encode/Decode maneja la codificacion binario-texto para JWTs, data URIs y adjuntos de email. Para la validacion de patrones en datos, el Regex Tester permite probar expresiones regulares en tiempo real. Y para la seguridad de las conexiones por las que viajan estos URLs, verifica siempre que tu sitio use HTTPS con SSL Check — los parametros URL son visibles en el trafico HTTP no cifrado.
Un caso insidioso es la doble codificacion: cuando un dato ya codificado se codifica una segunda vez, %20 se convierte en %2520 (el % se codifica como %25). El resultado es un URL que no funciona porque el servidor decodifica solo una vez y obtiene %20 como dato literal en lugar del espacio. Nuestra herramienta detecta y maneja correctamente la doble codificacion en la decodificacion, pero la prevencion es mejor: codifica los datos una sola vez, al momento de construir el URL.