http - characters - url encoding
¿Puedo usar un símbolo at(@) dentro de las URL? (4)
Porcentaje-codificado ...
Puede usar el carácter @
en las rutas HTTP URI si lo percent-encode como %40
.
Muchos navegadores lo mostrarían aún como @
, pero por ejemplo, cuando copie y pegue el URI en un documento de texto, será %40
.
... pero también directamente
En lugar de codificar por ciento, puede usar @
directamente en la ruta URI HTTP.
Ver la sintaxis para la path de un URI. Varias cláusulas no relacionadas aparte, la ruta puede consistir en caracteres en el segment
, segment-nz
o segment-nz-nc
establecido. segment
y segment-nz
consisten en caracteres del conjunto pchar
, que se define como:
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
Como puede ver, el @
está listado explícitamente.
El conjunto segment-nz-nc
también enumera explícitamente el carácter @
:
segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" )
Entonces, un URI HTTP como este es totalmente válido:
http://example.com/@dave
Ejemplo
Aquí hay un ejemplo de página de Wikipedia:
- link
- copiar y pegar:
http://en.wikipedia.org/wiki/%22@%22_%28album%29
Como puede ver, los caracteres "
, (
y )
están codificados en porcentajes, pero @
y _
se usan directamente.
¿Es seguro usar un símbolo @
como parte de un usuario? Por ejemplo, una posible URL sería http://example.com/@dave
.
La idea es que, actualmente, a los usuarios se les suele llamar "usuario", ¿por qué no hacer que la página de usuario sea "@nombre de usuario"?
¿Puedes usar @ -symbol en una URL? - ¡ Sí, puedes!
Tenga en cuenta que ese @ -caracter, valor hexadecimal 40, valor decimal 64, es un carácter reservado para URI. Su uso es para cosas como direcciones de correo electrónico en mailto:
URI, por ejemplo mailto:[email protected]
y para pasar información de nombre de usuario y contraseña en un URI (lo cual es una mala idea, pero posible): http://username:[email protected]
Si desea una URL que tenga un símbolo @ en una ruta, debe codificarla, con la llamada " percent-encode ". Por ejemplo, esto: http://somewhere.foo/profile/username%40somewhere.foo
Todos los navegadores modernos mostrarán esto como http://somewhere.foo/profile/[email protected] , y convertirá cualquier tipeado en @ -sign a %40
, por lo que es fácil de usar.
Muchos frameworks web también le ayudarán automáticamente, o con funciones auxiliares, a convertir ay desde URL URL codificadas.
Entonces, en resumen: Sí, puedes usar el símbolo @ en una URL, pero debes asegurarte de que esté codificado, ya que no puedes usar @ -character .
Básicamente no.
@
es un carácter reservado y solo debe usarse para el propósito previsto.
Ver: http://perishablepress.com/stop-using-unsafe-characters-in-urls/ y http://www.ietf.org/rfc/rfc3986.txt
Se puede usar codificado, pero no creo que sea eso lo que estabas preguntando.
Aparentemente, los navegadores modernos manejarán esto. Sin embargo, usted preguntó si esto era seguro y, de acuerdo con la especificación del http://www.ietf.org/rfc/rfc3986.txt , no debería usarlo (sin codificar) a menos que sea para su propósito previsto.
En el RFC los siguientes personajes:
! * ''(); : @ & = + $, /? % # []
son reservados y:
El objetivo de los caracteres reservados es proporcionar un conjunto de caracteres delimitadores que se distingan de otros datos dentro de un URI.
Por lo tanto, no se recomienda utilizar estos caracteres sin codificación.