Puis-je utiliser un symbole (@) à l'intérieur d'Url?
Est-il sécuritaire d'utiliser un @
symbole en tant que partie d'un utilisateur? Par exemple, une URL serait http://example.com/@dave
.
L'idée est que, de nos jours, les utilisateurs sont communément appelés "@user", alors pourquoi ne pas faire de l'utilisateur page "@username"?
- "les utilisateurs sont communément appelés @user" - WAT? Mais oui, vous pouvez utiliser le caractère @ dans une adresse URL.
- Je pense qu'il n'y a rien de mal à utiliser @ dans l'adresse url, sauf si elle est correctement codées dans l'url.
- Je pense que tu veux dire "tant qu'il est correctement encodé url".
- Juste remarqué que google maps est maintenant à l'aide de @ dans son Url: google.com/maps/@0,0,2 z
Vous devez vous connecter pour publier un commentaire.
Pour cent codé ...
Vous pouvez utiliser le
@
personnage dans URI HTTP chemins d'accès si vous pour cent-encoder comme%40
.De nombreux navigateurs affichage serait-il encore comme
@
, mais par exemple, lorsque vous copiez-collez l'URI dans un document texte, il sera%40
.... mais aussi directement
Au lieu d'un pour cent de l'encodage, vous pouvez utiliser
@
directement dans le HTTP chemin de l'URI.Voir la syntaxe de la chemin d'un URI. Divers sans lien avec les clauses de côté, le chemin d'accès se composent de caractères dans le
segment
,segment-nz
, ousegment-nz-nc
ensemble.segment
etsegment-nz
se composent de caractères à partir de lapchar
ensemble, qui est définie comme:Comme vous pouvez le voir, le
@
est explicitement mentionné.La
segment-nz-nc
ensemble répertorie également les@
caractère explicitement:Donc, un URI HTTP, comme cela est totalement valable:
Exemple
Voici un exemple de page de Wikipédia:
http://en.wikipedia.org/wiki/%22@%22_%28album%29
Comme vous pouvez le voir, le
"
,(
, et)
personnages sont pour cent codé, mais le@
et la_
est utilisé directement.@
dans les Url plus, mais l'ancien (?) profil URLs fonctionnent toujours: exemple avec pour cent codé@
(t pas travail!) contre exemple d'utilisation de@
directement (ne fonctionne!).@
dans le cas de Twitter. Leurs liens internes ne reporter la les url sans@
bien: twitter.com/@stackexchange@
n'est pas entière. De sorte que les consommateurs ne doivent pas supposer que%40
et@
sont équivalentes.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.
Ce n'est pas vrai pour google Chrome.Pouvez-vous utiliser le symbole @dans une adresse URL? - Oui, vous le pouvez!
Remarque que @caractères, la valeur hexadécimale de 40 valeur décimale, 64 ans, est l'un des caractères réservés pour d'URI. Son utilisation est pour des choses comme les adresses e-mail dans
mailto:
d'URI, par exemplemailto:[email protected]
et pour le passage de nom d'utilisateur et le mot de passe de l'information sur un URI (qui est une mauvaise idée, mais possible):http://username:[email protected]
Si vous voulez une URL qui a un symbole @dans un chemin d'accès, vous devez encoder, avec ce qu'on appelle "URL de codage". Par exemple, comme ceci:
http://somewhere.foo/profile/username%40somewhere.foo
Tous les navigateurs modernes affiche ce que http://somewhere.foo/profile/[email protected], et convertit toute tapé dans le signe @pour
%40
, de sorte qu'il est facile à utiliser.De nombreux web-cadres seront également vous aider que ce soit automatiquement ou avec aide-fonctions, pour convertir de et à partir de l'URL-encodée URL.
Donc, en résumé: Oui, vous pouvez utiliser le symbole @ dans une URL, mais vous devez vous assurer qu'il est encodé, que vous ne pouvez pas utiliser la @caractères.
@
caractères, ne pas "besoin" d'être codé dans le chemin d'accès d'une url (greenbytes.de/tech/webdav/rfc3986.html#path)Dans le RFC les caractères suivants:
sont réservés et:
De sorte qu'il n'est pas recommandé d'utiliser ces caractères sans codage.
Fondamentalement pas.
@
est un caractère réservé et doit être utilisé uniquement pour son usage prévu.Voir: http://perishablepress.com/stop-using-unsafe-characters-in-urls/ et http://www.ietf.org/rfc/rfc3986.txt
Il peut être utilisé codé, mais je ne pense pas que c'est ce que vous demandez.
Apparemment les navigateurs modernes va gérer cela. Cependant vous demandé si c'était bien sûr et selon la spécification de la RFC vous ne devriez pas l'utiliser (non codée), sauf si c'est pour son usage prévu.