Est-ce qu'un deux-points `:` est sûr pour l'utilisation d'une URL conviviale?


Answers

En plus de l'analyse de McDowell sur la norme URI, n'oubliez pas que le fragment doit être un nom d'ancre HTML valide. Selon http://www.w3.org/TR/html4/types.html#type-name

Les jetons ID et NOM doivent commencer par une lettre ([A-Za-z]) et peuvent être suivis d'un nombre quelconque de lettres, de chiffres ([0-9]), de traits d'union ("-"), de traits de soulignement ("_") , deux points (":") et des points (".").

Donc vous avez de la chance. ":" est explicitement autorisé. Et personne ne devrait "%" - y échapper, non seulement parce que "%" est illégal, mais aussi parce que le nom de l'ancre char-by-char est très fragmenté, donc aucun agent ne devrait essayer de tempérer avec eux.

Cependant, vous devez le tester. Les normes Web ne sont pas strictement suivies, parfois les normes sont contradictoires. Par exemple HTTP / 1.1 RFC 2616 n'autorise pas de chaîne de requête dans l'URL de requête, tandis que HTML en construit une lors de la soumission d'un formulaire avec la méthode GET. Celui qui est mis en œuvre dans le monde réel gagne à la fin de la journée.

Question

Nous concevons un système d'URL qui spécifiera les sections d'application comme des mots séparés par des barres obliques. Plus précisément, c'est dans GWT, donc les parties pertinentes de l'URL seront dans le hachage (qui sera interprété par une couche de contrôleur sur le côté client):

http://site/gwturl#section1/section2

Certaines sections peuvent avoir besoin d'attributs supplémentaires, que nous aimerions spécifier avec un : afin que les sections de l'URL ne soient pas ambiguës. Le code se diviserait d'abord sur / , puis sur : comme ceci:

http://site/gwturl#user:45/comments

Bien sûr, nous faisons cela pour l'url-friendliness, donc nous voudrions nous assurer qu'aucun de ces caractères qui auront une signification particulière ne sera encodé en url par les navigateurs, ou tout autre système, et se retrouver avec une URL comme ce:

http://site/gwturl#user%3A45/comments <--- BAD

Est-ce que l'utilisation du côlon de cette façon est sûre (je veux dire ne sera pas automatiquement codé) pour les navigateurs, les systèmes de marque-pages, même Javascript ou le code Java?




Je ne vois pas Firefox ou IE8 codant certaines des URLs Wikipedia qui incluent le personnage.




Colon n'est pas en sécurité. Vois ici




Je ne compterais pas dessus. Il sera probablement encodé en %3A par de nombreux utilisateurs.




Links