Preservación de casos
Las URL conservan mayúsculas y minúsculas entre el cliente y el servidor. Pero partes de las URL pueden o no ser sensibles a mayúsculas y minúsculas , dependiendo del servidor, por un par de razones.
Sensibilidad del caso
Las siguientes partes en negrita de las URL pueden distinguir entre mayúsculas y minúsculas, según el sitio o la configuración del servidor.
http: // www. ejemplo.com /abc/def.ghi?jkl=mno#pqr
usuario @ example.com
Razón fundamental
Las mayúsculas y minúsculas en las URL pueden tener varios usos. Principalmente:
- Compatibilidad nativa con sistemas de archivos sensibles a mayúsculas y minúsculas.
- Codificación de datos más compacta dentro de las URL, como la serialización, el hash, las ID, los enlaces permanentes y los acortadores de URL.
Como desarrollador, creo que lo anterior a menudo se puede manejar de mejor manera, pero también entiendo que hay casos en los que una situación puede no permitir esto.
Por ejemplo, imagine un producto existente que requiere una gran cantidad de datos ubicados en la URL "GET", pero debe ser compatible con las longitudes máximas de URL de todos los principales servidores, navegadores y mecanismos de almacenamiento en caché / proxy. Para ajustar incluso una cadena de comando de longitud moderada (menos de 1,024 caracteres para algunos navegadores más antiguos), necesitaría usar todos los caracteres únicos seguros para URL que pueda (que es básicamente lo que es la codificación base64url).
En un mundo ideal
Es discutible si las URL deben ser sensibles a mayúsculas y minúsculas. Personalmente, creo que no deberían serlo, por simplicidad (aunque puede crear URL más largas, tenemos porcentajes de escape para manejar fácilmente los casos en los que debemos garantizar la preservación de los caracteres exactos, y hay formas de transferir datos que no sean directamente en la URL) .
Muchos parecen estar de acuerdo con el hecho de que las URL que no distinguen entre mayúsculas y minúsculas están explícitamente habilitadas para muchos sitios y servicios populares, con el fin de aumentar la usabilidad. El ejemplo más destacado es la parte del nombre de usuario de las direcciones de correo electrónico. La mayoría de los proveedores de correo electrónico ignorarán mayúsculas y minúsculas y, a veces, incluso puntos y otros símbolos (como "j.smith@example.com" es lo mismo que "JSMITH@example.com"). Aunque los nombres de usuario de correo electrónico distinguen entre mayúsculas y minúsculas, según las especificaciones.
Sin embargo, el hecho es que a pesar de lo que yo u otros podríamos querer, este es el estado de cómo funcionan las cosas actualmente. Y si bien es posible una eventual transición mundial a un estándar de URL que no distinga entre mayúsculas y minúsculas, es probable que lleve bastante tiempo ya que la distinción entre mayúsculas y minúsculas se usa ampliamente en la web para diversos fines.
Mejores prácticas
En lo que respecta a las mejores prácticas, como usuario puede razonablemente seguir en minúsculas para la mayoría de las situaciones y esperar que las cosas funcionen. Las principales excepciones serían las URL que usan codificación basada en casos o rutas de documentos con equivalentes directos del sistema de archivos. Sin embargo, estas URL complejas suelen copiarse (o simplemente hacer clic) en lugar de escribirse manualmente.
Como desarrollador web, debe considerar mantener las URL tan insensibles a mayúsculas como sea posible. Aunque claramente hay algunas situaciones difíciles de evitar, según el contexto, como se señaló anteriormente.