Est-il sûr d'utiliser un @
symbole dans le cadre d'un utilisateur? Par exemple, une URL possible 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 créer la page utilisateur "@username"?
Réponses:
Codé en pourcentage…
Vous pouvez utiliser le
@
caractère dans les chemins URI HTTP si vous le codez en pourcentage comme%40
.De nombreux navigateurs l'afficheraient toujours sous la forme
@
, mais par exemple, lorsque vous copiez et collez l'URI dans un document texte, ce sera le cas%40
.… Mais aussi directement
Au lieu de l'encoder en pourcentage, vous pouvez l'utiliser
@
directement dans le chemin URI HTTP.Voir la syntaxe pour le chemin d'un URI. Diverses dispositions indépendantes de côté, le chemin d' accès peuvent être constitués de caractères dans le
segment
,segment-nz
ousegment-nz-nc
ensemble.segment
et sesegment-nz
composent de caractères de l'pchar
ensemble, qui est défini comme:Comme vous pouvez le voir, le
@
est répertorié explicitement.L'
segment-nz-nc
ensemble répertorie également le@
caractère explicitement:Donc, un URI HTTP comme celui-ci est totalement valide:
Exemple
Voici un exemple de page Wikipédia:
http://en.wikipedia.org/wiki/%22@%22_%28album%29
Comme vous pouvez le voir, les
"
,(
et les)
caractères sont codés pour cent, mais le@
et_
est utilisé directement.la source
@
dans les URL, mais les anciennes URL de profil (?) Fonctionnent toujours: exemple avec encodage en pourcentage@
(ne fonctionne pas !) Vs exemple en utilisant@
directement ( travail!) .@
dans le cas de Twitter. Leurs liens internes renvoient l'URL sans@
cependant: twitter.com/@stackexchange@
n'est pas sans réserve . Les consommateurs ne doivent donc pas supposer cela%40
et@
sont équivalents.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 Chrome.Pouvez-vous utiliser le @ -symbol dans une URL? - Oui, tu peux!
Notez que @ -character, valeur hexadécimale 40, valeur décimale 64, est un caractère réservé pour les URI. Son utilisation est pour des choses comme les adresses e-mail dans les
mailto:
URI, par exemplemailto:[email protected]
et pour passer des informations de nom d'utilisateur et de mot de passe sur un URI (ce qui est une mauvaise idée, mais possible):http://username:[email protected]
Si vous voulez une URL qui a un @ -symbol dans un chemin, vous devez l'encoder, avec ce qu'on appelle " URL-encoding ". Par exemple comme ceci:
http://somewhere.foo/profile/username%40somewhere.foo
Tous les navigateurs modernes afficheront cela comme http://somewhere.foo/profile/[email protected] , et convertiront tout ce qui est saisi dans @ -sign en
%40
, donc c'est facile à utiliser.De nombreux frameworks Web vous aideront également soit automatiquement, soit avec des fonctions d'assistance, à convertir vers et à partir d'URL encodées en URL.
Donc, en résumé: oui, vous pouvez utiliser le @ -symbol dans une URL, mais vous devez vous assurer qu'il est encodé, car vous ne pouvez pas utiliser le @ -character .
la source
@
caractères n'ont pas "besoin" d'être encodés dans la partie chemin d'une URL ( greenbytes.de/tech/webdav/rfc3986.html#path )Dans la RFC les caractères suivants:
sont réservés et:
Il n'est donc pas recommandé d'utiliser ces caractères sans encodage.
la source
Fondamentalement non.
@
est un caractère réservé et ne doit être utilisé que pour l'usage auquel il est destiné.Voir: http://perishablepress.com/stop-using-unsafe-characters-in-urls/ et http://www.ietf.org/rfc/rfc3986.txt
Il peut être utilisé encodé, mais je ne pense pas que ce soit ce que vous demandiez.
Apparemment, les navigateurs modernes s'en chargeront. Cependant, vous avez demandé si c'était sûr et selon les spécifications de la RFC, vous ne devriez pas l'utiliser (non codé) à moins que ce ne soit pour son usage prévu.
la source