¿Es seguro utilizar un @
símbolo como parte de un usuario? Por ejemplo, una posible URL sería http://example.com/@dave
.
La idea es que, hoy en día, los usuarios se denominan comúnmente "@user", así que ¿por qué no hacer que la página de usuario sea "@username"?
Respuestas:
Codificado por porcentaje ...
Puede utilizar el
@
carácter en las rutas HTTP URI si lo codifica porcentualmente como%40
.Muchos navegadores lo mostrarían todavía como
@
, pero por ejemplo, cuando copie y pegue el URI en un documento de texto, lo será%40
.... pero también directamente
En lugar de codificarlo en porcentaje, puede usarlo
@
directamente en la ruta HTTP URI.Consulte la sintaxis de la ruta de un URI. Varios cláusulas no relacionadas a un lado, el camino pueden consistir de caracteres en el
segment
,segment-nz
osegment-nz-nc
conjunto.segment
ysegment-nz
constan de personajes delpchar
conjunto, que se define como:Como puede ver,
@
se enumera explícitamente.El
segment-nz-nc
conjunto también enumera el@
personaje explícitamente:Entonces, un URI HTTP como este es totalmente válido:
Ejemplo
Aquí hay un ejemplo de página de Wikipedia:
http://en.wikipedia.org/wiki/%22@%22_%28album%29
Como se puede ver, las
"
,(
y)
los caracteres son codificados por ciento, pero el@
y el_
se utiliza directamente.fuente
@
en las URL, pero las URL de perfil antiguas (?) Aún funcionan: ejemplo con porcentaje codificado@
(¡ no funciona!) Vs. ejemplo usando@
directamente (¿ trabajo!) .@
en el caso de Twitter. Sus enlaces internos hacen referencia a la URL sin@
embargo: twitter.com/@stackexchange@
no es sin reservas . Por tanto, los consumidores no deben asumir eso%40
y@
son equivalentes.Many browsers would display it still as @, but e.g. when you copy-and-paste the URI into a text document, it will be %40.
Eso no es cierto para Chrome.¿Puedes usar el símbolo @ en una URL? - ¡ Sí, puedes!
Tenga en cuenta que el carácter @, 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 denominada " codificación de URL ". Por ejemplo así:
http://somewhere.foo/profile/username%40somewhere.foo
Todos los navegadores modernos mostrarán esto como http://somewhere.foo/profile/[email protected] , y convertirán cualquier escrito en @ -sign a
%40
, por lo que es fácil de usar.Muchos marcos web también lo ayudarán, ya sea automáticamente, o con funciones auxiliares, a convertir hacia y desde URL codificadas en URL.
Entonces, en resumen: Sí, puede usar el símbolo @ en una URL, pero debe asegurarse de que esté codificado, ya que no puede usar el carácter @ .
fuente
@
caracteres no "necesitan" codificarse en la parte de la ruta de una URL ( greenbytes.de/tech/webdav/rfc3986.html#path )En el RFC los siguientes caracteres:
están reservados y:
Por lo que no se recomienda utilizar estos caracteres sin codificar.
fuente
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 se encargarán de esto. Sin embargo, preguntó si esto era seguro y de acuerdo con las especificaciones del RFC , no debería usarlo (sin codificar) a menos que sea para el propósito previsto.
fuente