Herramientas de URL
Codificación de URL frente a decodificación: ¿cuál es la diferencia?
Una guía reversible y basada en componentes para la codificación y decodificación de URL.
Por Vigneshwaran Vijayakumar, desarrollador y editor | | Revisado bajo el ClockTools política editorial
Tabla de contenidos
La codificación de URL convierte en tripletes porcentuales los caracteres que no son seguros en un componente de URL o que tienen un significado sintáctico en él; la decodificación de URL convierte los tripletes válidos en caracteres legibles. Codifique antes de insertar datos sin procesar en un componente. Decodifique cuando necesite inspeccionar o utilizar un valor ya codificado. Codificador de URL ClockTools y Decodificador de URL le permiten probar ambas direcciones sin cambiar el texto original.
Elija la dirección desde la entrada
Si la entrada son datos legibles por humanos, como summer shoes & bags, codifíquelos antes de colocarlos en un valor de consulta. Si la entrada ya contiene secuencias como %20 y necesita los caracteres originales, decodifíquela una vez. Estándar de URL WHATWG define conjuntos de codificación porcentual para el análisis y la serialización de URL; RFC 3986 explica la forma de triplete porcentual y los caracteres reservados.
| Tiene | Necesita | Operación |
|---|---|---|
| Valor de consulta sin procesar | Componente seguro para URL | Codificar |
| Tripletes de codificación porcentual | Valor legible | Decodificar |
| URL completa analizada | Un campo cambiado | Modifique ese componente y luego serialícelo |
Codificar no es cifrar. Hace que la sintaxis sea inequívoca; no oculta información confidencial.
Siga un ejemplo reversible
Comience con summer shoes & bags. La codificación de componentes produce summer%20shoes%20%26%20bags. Los espacios se convierten en %20 y la y comercial se convierte en %26, por lo que son datos en lugar de un separador. Decodificar ese resultado una vez restaura la frase original.
En la verificación en vivo de ClockTools, una muestra de 74 caracteres se convirtió en 102 caracteres con 14 secuencias de escape en modo de componente URI. Esos recuentos describen esa muestra únicamente; diferentes entradas producen diferentes totales.
Respetar los límites de los componentes de la URL
Una URL contiene partes con diferente sintaxis: esquema, host, ruta, consulta y fragmento. El flujo de trabajo más seguro es analizar la URL, cambiar el valor deseado y luego serializarlo utilizando la API de su entorno. Codificar una URL completa ya ensamblada puede convertir en secuencias de escape separadores como :, /, ? y & que debían conservar su significado estructural.
El caso del carácter espacio merece una atención especial. La codificación porcentual genérica representa un espacio como %20. La serialización de consultas de estilo de formulario HTML puede utilizar + en su lugar. Lea Codificación de URL para un espacio para conocer ese problema limitado de interoperabilidad; este artículo aborda la dirección de operación, la elección de componentes y la inversión.
Evitar la doble codificación
La doble codificación ocurre cuando el texto codificado pasa nuevamente a través de un codificador. Por ejemplo, %20 puede convertirse en %2520 porque % está codificado como %25. Realice un seguimiento de si cada valor está sin procesar o codificado, codifique en un límite y decodifique solo tantas veces como lo requiera el contrato de datos. RFC 3986 advierte que las cadenas codificadas por porcentaje no deben codificarse ni decodificarse más de una vez sin un motivo claro.
Al depurar, copie el componente más pequeño en la herramienta, decodifique una vez y compare el resultado con el valor bruto esperado. Nunca pegue secretos, tokens o URL privadas en una herramienta en la que no confíe.
Preguntas frecuentes
¿Cuál es la diferencia entre codificar y decodificar URL?
La codificación convierte los caracteres en una representación segura para el transporte; la decodificación invierte los tripletes de porcentaje válidos en caracteres legibles.
¿Debo codificar una URL completa o sólo un componente?
Por lo general, codifique el valor o componente que está insertando, no una URL ya ensamblada con separadores significativos.
¿Por qué a veces una URL contiene %2520?
Comúnmente significa que %20 se codificó nuevamente: el signo de porcentaje se convirtió en %25, lo que produce un valor con doble codificación.
¿Un signo más es siempre lo mismo que un espacio?
No. Algunos analizadores de consultas con codificación de formulario tratan + como un espacio, mientras que la codificación porcentual de URL genérica utiliza %20.

