it-swarm-es.com

¿Qué caracteres especiales son seguros para usar en url?

¿Qué caracteres especiales son seguros para usar en url?

13
YOU

Los caracteres seguros son a-z, A-Z, 0-9 y _ - (subrayado y menos), que además de los caracteres reservados que se utilizan para los parámetros.

Otros personajes darán problemas en algún grado. ejemplo: si un parámetro es una matriz ?param=array[content] es decir, mostrará una url con los corchetes codificados en url, que se ven feos e imposibles de dictar.

Pero el problema no es solo que es feo, digamos que tienes un jpg con un personaje al lado de los más seguros, muchas veces el navegador no podrá descargarlo obteniendo un 404. Este es un problema de navegadores antiguos y algunos navegadores móviles.

¿Cómo probar esto?

  • ponga un montón de imágenes/js/css con los caracteres que desea probar en los nombres en una página pública con muchos visitantes
  • Haga que la página 404 le envíe un correo electrónico cada vez que reciba un golpe

Tengo una bandeja de entrada con 14000 correos electrónicos que prueban mi punto.

10
The Disintegrator

Los siguientes caracteres tienen un significado especial en el componente de ruta de su URL (el componente de ruta es todo antes del '?'):

  ";" | "/" | "?"

Además de esos, los siguientes caracteres tienen un significado especial en la parte de consulta de su URL (todo después de '?'). Por lo tanto, si están detrás del '?' necesitas escapar de ellos:

  ":" | "@" | "&" | "=" | "+" | "$" | ","

Para una explicación más detallada, vea RFC .

11
Thomas Bonini

Las respuestas aquí son buenas, pero hay una excepción más que creo que vale la pena mencionar: los caracteres que no están en inglés. Referenciando esta pregunta SF aquí , los caracteres como ñ (como en español) son perfectamente legítimos, SI se han codificado en su DNS correctamente.

Debe usar Punycode dentro de su DNS para que se resuelvan en los navegadores modernos (la entrada para español es xn--espaol-zwa) pero ahora son perfectamente seguros de usar en los nombres de dominio, ya que ' También es fácil para los que no hablan inglés.

3
Mark Henderson