Chez Xavier

Home / Définir un modèle d'URIs

Excuse me, I think I'm naked: on a wall of Barcelona.

Excuse me, I think I'm naked: on a wall of Barcelona.

Jusqu'à présent, je ne me suis jamais posé la question de la persistance de la localisation des informations fournies par mes pages. Mes différents écrits étaient disponibles à une certaine adresse, suivant l'humeur du jour ou suivant le système de publication alors employé. Par exemple, l'article "Apprenez à rédiger correctement vos emails" est disponible à l'adresse http://www.lacot.org/index.php?page=humeur&id=28. Cette adresse permet sans doute d'accéder à l'article voulu au jour de sa publication, mais elle n'est pas une bonne solution sur le long terme :

  • cette adresse n'a aucun sens - autant qu'une adresse peut en avoir - et tout ce que l'on peut en comprendre c'est qu'elle présente une humeur qui porte un identifiant numéro 28. Pour le visiteur, cela n'est pas évident à retenir. Pour un robot, cela n'a strictement aucune valeur indexable.
  • cette adresse dépend de la technologie employée. Pour l'instant, mon système de publication est programmé en PHP, mais qu'en sera-t-il dans 2, 5 ou 10 ans ? Supposons qu'un langage révolutionnaire, le langage bisounours, fasse son apparition. Les ressources disponibles sur mon site seront-elles alors adressées par des pages dont l'extension sera ".bis" ? Quid, alors, des visiteurs potentiels qui, trouvant l'adresse de mes anciennes pages dans un moteur de recherche, buteraient sur un "404 page not found" dû à l'évolution technologique de mon système interne de publication ?
  • cette adresse ne traduit qu'un choix ponctuel, qui n'a été dicté par aucune logique ni aucune réflexion. Une classification pérenne des documents proposés sur un site web devrait employer des termes non équivoques et, surtout, non susceptibles d'être remis en question par un nouveau coup de tête.

L'ensemble de ces défauts peut-être contourné en suivant une principe simple, édicté par Tim Berners Lee dans le titre de l'article Cool URIs don't change, publié en 1998. Si l'on suit ce principe, la page actuelle http://www.lacot.org/index.php?page=humeur&id=28 devrait plutôt être désignée par l'URI http://www.lacot.org/articles/28-apprenez-a-rediger-correctement-vos-emails.html. Voici pourquoi :

  • cette URI désigne une ressource de manière unique et non ambigüe. La présence de l'identifiant de l'article (28) dans cette adresse permet de s'assurer que, dans le futur, d'autres articles pourront porter le même titre.
  • cette URI est pérenne, elle ne dépend pas de la technologie serveur actuellement employée. D'une manière plus générale, les contraintes techniques côté serveur ne devraient jamais être perçues côté client. Ce principe est valable pour les URIs, et il l'est aussi pour la structure du code HTML, pour l'encodage adopté, pour les méthodes d'entrée/sortie de paramètres, etc.
  • cette URi est porteuse de sens : la présence du titre de l'article dans l'URI, outre le fait qu'il peut favoriser l'indexation par les moteurs de recherche, est un gage de stabilité dans les choix de nommage, car il n'y a pas de meilleure alternative que de nommer un document par son titre.

Cet exemple ne demeure, cependant, qu'un exemple, et devra être adapté suivant les cas. Un journal qui publierait plusieurs articles par jour pourrait, par exemple, décider d'intégrer une notion temporelle dans sa politique de classification des articles. L'URI d'un article pourrait alors être http://www.unjournal.com/2005/10/25/3526-ici-le-titre-de-l-article.html.

Karl Dubost explicitait, il y a maintenant 4 ans, quelques uns de ces principes sur son carnet web, dans l'article Permanence des URIs. Il y fournit notamment une solution pour les webmasters qui souhaitent changer l'adresse d'un document, que ce soit par choix personnel ou par contrainte : l'utilisation du code 301 de redirection permanente. La redirection permanente permet d'indiquer au client que la ressource recherchée a été déplacée, et qu'elle est disponible à une nouvelle adresse.

Une phrase, donc pour résumer cette prose : Cool URIs don't change

Il était donc temps de mettre quelques coups de pieds dans la fourmilière de mon site qui, en plus de trois ans, a eu le temps de (mal) se développer. L'adoption publique de Dotclear comme outil de publication est un de ces coups de pieds. Tout d'abord parce que Dotclear est un outil bien fait, bien documenté et bien maintenu. Ensuite, parce que ses caractéristiques techniques répondent scrupuleusement aux concepts basiques du Web, comme par exemple le fameux Cool URIs don't change.

D'autres coups de pieds sont à venir. Dotclear est un bon outil, mais pas assez générique à mon gout. Quelque chose me dit qu'un framework applicatif libre devrait bientôt être utilisé sur ces pages, histoire de chasser définitivement l'ancienne structure de mon site perso, un peu dépassée aujourd'hui, et de toute façon trop peu réfléchie.

  • written on: 2005-12-11