¿Por qué necesita codificar urls? ¿Hay alguna buena razón por la cual tiene que cambiar cada espacio en los datos GET al %20
?¿Por qué necesita codificar URL?
Respuesta
De RFC 2936, sección 2.4.3:
se excluye el carácter de espacio porque los espacios significativos pueden desaparecer y espacios insignificantes pueden ser introducido cuando se transcriben URI o composición tipográfica o se somete al tratamiento de programas de tratamiento de textos . El espacio en blanco también se usa para delimitar el URI en muchos contextos.
no puede ser más preciso que el RFC – Perpetualcoder
En otras palabras, "No, no hay una razón técnica inherente, pero sabemos que los implementadores y los usuarios son descuidados". Probablemente fue la decisión correcta, principalmente porque los usuarios tendrían problemas para mantener la cantidad correcta de espacio. –
@Matthew - Hay una razón técnica inherente, ver mi respuesta – Rippo
Bueno, lo hace así porque cada navegador diferente sabe cómo está codificada la cadena que compone la URL. la conversión del espacio a% 20, etc. hace que esa URL/URI sea portátil. Podría ser latin-1 podría ser unicode. Necesita normalizarse a algo que se entiende universalmente. Eche un vistazo a rfc3986 http://tools.ietf.org/html/rfc3986#section-2.1
Cambiar la representación de bytes no especifica una codificación. Al menos no literalmente –
Porque algunos caracteres tienen un significado especial.
Por ejemplo, en una cadena de consulta, el signo comercial (&
) se usa como un separador entre los pares clave-valor. Si pusiera un signo & en uno de esos valores, se vería como el separador entre el final de un valor y el comienzo de la siguiente clave. Entonces, para caracteres especiales como este, utilizamos la codificación porcentual para que podamos estar seguros de que los datos están codificados de manera no ambigua.
Pero, digamos que puedes codificar '&' como '% 26'. Aún así, podría tener un valor que contenga la cadena como '100% 26 = 22 '. Todavía se vería como el separador entre pares clave-val ¿no? –
No, porque '%' es uno de los caracteres con significados especiales, por lo que también debe estar codificado (como '% 25'). Si tuviera el valor de la cadena '% 26', entonces eso aparecería en una URL como'% 2526' porque el '%' estaría codificado. Para obtener el valor de la cadena, decodificará '% 25' como'% ', dejándote con la cadena'% 26'. – Jim
- originalmente los navegadores más antiguos podían confundirse por los espacios (ya no es un problema).
- ahora, si alguien copia la dirección URL para enviar como un enlace - el espacio puede romper el hipervínculo - es decir
Hey! ¡Mira este gato derping tocando el piano!
http://www.mysite.com/?video=funny cat plays piano.
¿Cómo se omite el enlace?
Ahora mira esto:
http://www.mysite.com/?video=funny%20cat%20plays%20piano.
- 1. codificar Por qué URL, o qué caracteres para codificar
- 2. Java - codificar URL
- 3. ¿Por qué necesita PrintWriter?
- 4. ¿Necesita HTML codificar etiquetas de título?
- 5. ¿Por qué esta propiedad necesita el 'retener'?
- 6. Url Codificar Javascript objeto literal
- 7. Cómo codificar URL en Groovy?
- 8. ¿Por qué se necesita NotificationCompat?
- 9. ¿Por qué se necesita typeof?
- 10. Cómo codificar por ciento los parámetros de URL en Python?
- 11. ¿Cómo codificar correctamente los acentos de URL?
- 12. ¿Por qué el codificador JSON agrega caracteres de escape al codificar URL?
- 13. cómo codificar en url en android?
- 14. ¿Cómo codificar los parámetros de URL?
- 15. Cómo codificar períodos para URL en Javascript?
- 16. Cómo codificar una URL en WinForms?
- 17. Cómo codificar (.) Punto en url Rails
- 18. URL Codificar todo no alfanumérico en C#
- 19. ¿Por qué ordenadoDiccionario necesita tanta sobrecarga?
- 20. por qué std :: search necesita reenviar iters
- 21. ¿Por qué se necesita WEXITSTATUS incluso?
- 22. ¿Por qué removeChild necesita un nodo principal?
- 23. ¿Por qué VARCHAR necesita especificación de longitud?
- 24. ¿Por qué la web necesita HTTP?
- 25. ¿Por qué necesita una ruta definida para Html.Action?
- 26. ¿Cómo codificar URL correctamente una cadena en PHP?
- 27. Encriptar/Codificar una ID en la cadena de URL
- 28. Código para descodificar/codificar una base64 URL modificada
- 29. ¿Cómo codificar la siguiente URL utilizando JavaScript o jQuery correctamente?
- 30. ¿Cómo codificar una cadena URL completa en ASP MVC
Una buena razón es que en el material impreso que es mejor usar '20'% por lo que algunos de DBO puede escribirla sin tratar de adivinar el número de espacios! –