web-dev-qa-db-fra.com

Puis-je utiliser un at symbole (@) à l'intérieur des URL?

Est-il prudent d'utiliser un @ symbole en tant qu'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"?

83
Geoff

Pourcentage encodé…

Vous pouvez utiliser le @ caractère dans les chemins d’URI HTTP si vous encoder en pourcentage en tant que %40.

De nombreux navigateurs l'afficheraient toujours sous la forme @, mais par exemple lorsque vous copiez-collez l'URI dans un document texte, il s'agit de %40.

… Mais aussi directement

Au lieu de l’encoder en pourcentage, vous pouvez utiliser @ directement dans le chemin de l'URI HTTP.

Voir la syntaxe pour le chemin d'un URI. En dehors de diverses clauses non liées, le chemin peut être composé de caractères dans le segment, segment-nz, ou segment-nz-nc ensemble. segment et segment-nz se compose de caractères du jeu pchar, défini comme suit:

pchar = unreserved / pct-encoded / sub-delims / ":" / "@"

Comme vous pouvez le voir, le @ est répertorié explicitement.

Le segment-nz-nc set définit également le @ caractère explicitement:

segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" )

Ainsi, un URI HTTP comme celui-ci est totalement valide:

http://example.com/@dave

Exemple

Voici un exemple de page Wikipedia:

  • lien
  • copier et coller: http://en.wikipedia.org/wiki/%22@%22_%28album%29

Comme vous pouvez le voir, le ", (, et ) caractères sont codés en pourcentage, mais le @ et le _ est utilisé directement.

119
unor

Pouvez-vous utiliser le symbole @ dans une URL? - Oui, vous pouvez!

Notez que le caractère @, la valeur hexadécimale 40 et la valeur décimale 64 sont des caractères réservés pour les URI. Son utilisation est faite pour des choses comme les adresses électroniques dans mailto:URI, par exemple mailto:[email protected] et pour transmettre les 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 comportant un symbole @ dans un chemin, vous devez l'encoder, avec ce que vous appelez " encodage d'URL ". Par exemple, comme ceci: http://somewhere.foo/profile/username%40somewhere.foo

Tous les navigateurs modernes l’afficheront sous la forme http://somewhere.foo/profile/[email protected] , et convertira tous les caractères saisis @ -sign en %40, donc facile à utiliser.

De nombreux frameworks Web vous aideront également, soit automatiquement, soit à l'aide de fonctions d'assistance, à convertir en URL à partir d'URL codées.

Donc, en résumé: Oui, vous pouvez utiliser le @ - symbol dans une URL, mais vous devez vous assurer qu'il est codé, car vous ne pouvez pas utiliser le @ - character =.

38
Lennart Regebro

Dans le RFC les caractères suivants:

! * '(); : @ & = + $, /? % # []

sont réservés et:

Le but des caractères réservés est de fournir un ensemble de caractères de délimitation qui se distinguent des autres données contenues dans un URI.

Il n'est donc pas recommandé d'utiliser ces caractères sans codage.

11
Salvador Dali