Extrait de l'émission CPU release Ex0214 : Disséquons une URL, seconde partie.
Dans une URL, après le query vient la dernière partie, le bout, la queue : ce que l'on appelle le fragment, ou hash, qui indique quel extrait du document est spécifiquement utile au visiteur. Cette requête de fragment commence après un premier #
. (on dit dièse
si on aime la musique, on utilise le mot croisillon
si on bosse dans un ministère de Paris).
Je suis obsédé par les fragments dans les URL car c'est souvent la partie la plus méconnue. Parce que quand on commence à les manipuler, on découvre plein de fonctions avec son navigateur web.
Pour vous la faire courte, vous devez voir un hash un peu comme le pendant d'une query mais côté logiciel client, côté navigateur web. La query s'adresse au serveur pour affiner votre demande, le hash s'adresse au logiciel client pour expliquer quelle partie du document va vous intéresser.
Théoriquement, le fragment d'une URL ne doit pas remonter au serveur hôte, car c'est au logiciel client de ne montrer que la bonne partie. Euh, théoriquement
.
Dans le standard décrivant l'URL, il est dit que le fragment d'un document est toujours la même part significative, quel que soit le protocole d'accès ou les paramètres de récupération (query). En gros, si je reprends l'analogie d'un livre à la BNF, si ce même livre je le consulte en e-book ou en livre audio, une phrase sera toujours au même chapitre.
Dans le web, le seul hash réellement supporté nativement par tous les navigateurs, c'est l'attribut id
d'un élément HTML. Et c'est tout. Si vous ajoutez la moindre fioriture dans le hash de l'URL, cette fonctionnalité native ne marche plus.
Après, si on rajoute des fonctions en javascript pour étendre les fonctionnalités d'un hash, il faut faire attention à ne pas casser le fait que le navigateur fait défiler la page pour afficher l'élément appelé. D'ailleurs, c'est là que la plupart des applications javascript côté navigateur se plantent souvent, ils en oublient le fonctionnement natif.
Je mets parfois des liens de référence avec de très longs documents dans mes textes d'émissions de CPU ou pour mon travail, et parfois, seul un chapitre noyé au milieu est pertinent ; pour me faciliter la vie, j'ai écrit il y a un bail une Web-Extension, un petit programme qui étend votre navigateur web. Il s'appelle Anchors reveal
, et affiche les ancres id=""
des éléments affichés dans une page.
Pour être honnête, je l'ai écrite assez minimaliste et heureusement en open-source, vous pouvez la compléter et la maintenir.
Mais avec le hash, on peut aller beaucoup plus loin, notamment avec des paramètres.
[Suite : Standard : Les paramètres de hash et les Media fragments]
Texte : Da Scritch
Illustration : Requête Dall-E A hash sign symbol symbol floatting on a book
, libéré en CC.