Quels sont les deux caractères séparateur fonctionnerait dans une ancre d'URL?

voix
10

J'utilise des ancres dans mes URL, permettant aux gens de « pages actives » signet dans une application web. Je ancres parce qu'ils intègrent facilement dans le mécanisme d'historique GWT.

Ma mise en œuvre existante code des informations de navigation et les données dans l'ancre, séparés par le caractère - « ». À savoir la création de points d'ancrage comme valeur-clé-valeur-clé emplacement emplacement #

Outre le fait que les valeurs négatives (comme -1) posent de sérieux problèmes d'analyse syntaxique, cela fonctionne, mais maintenant que j'ai trouvé que deux ayant des caractères de séparation serait mieux. En outre, Givin la question du nombre négatif, je voudrais fossé en utilisant « - ».

Quels sont les autres personnages travaillent dans une ancre d'URL qui ne gêne pas l'URL ou son GET params? Quelle est la stabilité seront-ils à l'avenir?

Créé 19/02/2009 à 18:17
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
18

En regardant la RFC pour les URL, la section 3.5 un identifiant de fragment (que je crois que vous faites référence) est définie comme

fragment = * (pchar / "/" / "?")

et de l' annexe A

pchar = sans réserves / pct codés / sous-delims / ":" / "@"
= ALPHA sans réserves / DIGIT / "-" / "" / "_" / "~"
sous-delims = "!" / "$" / "Et" / "" / "(" / ")"
                 / "*" / "+" / "" / ";" / "="

Fait intéressant, la spécification dit aussi que

« Les caractères slash ( » / « ) et point d'interrogation ( »? « ) Sont autorisés à représenter des données au sein de l'identifiant de fragment. »

Il semble donc que les véritables points d'ancrage, comme

<a href="#name?a=1&b=2">
....
<a name="name?a=1&b=2">

sont censés être légal, et est très semblable à la chaîne normale de requête URL. (Une vérification rapide a vérifié que ceux-ci ne fonctionnent correctement dans au moins chrome, Firefox et IE) Depuis cela fonctionne, je suppose que vous pouvez utiliser votre méthode pour avoir des URL comme

http://www.site.com/foo.html?real=1¶meters=2 # 2 & faux = paramètres = 3

sans problème (par exemple, la variable « paramètres » dans le fragment ne doit pas interférer avec celui de la chaîne de requête)

Vous pouvez également utiliser le codage pour cent en cas de besoin ... et il y a beaucoup d'autres caractères définis dans les sous-delims qui pourraient être utilisables.

REMARQUE:

En outre de la spécification:

« Un élément d'identificateur de fragment est indiqué par la présence d'un signe dièse ( » # « ) caractère et se termine à la fin de l'URI ».

Donc tout après le # est l'identifiant de fragment, et ne doit pas interférer avec les paramètres GET.

Créé 19/02/2009 à 18:47
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more