Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Ève

Deux flux de syndication, avec et sans TLS

Première rédaction de cet article le 17 janvier 2016
Dernière mise à jour le 23 janvier 2016


Il y a un vieux problème sur ce blog, qui se pose depuis que j'ai activé l'accès en HTTPS : les flux de syndication ne fonctionnaient pas avec un grand nombre d'agrégateurs. J'ai contourné le problème en ayant désormais deux flux, un en HTTPS et un sans.

Quel est le problème ? Comme j'utilise une AC gratuite et automatique, CAcert, qui n'est pas dans tous les magasins de certificats, loin de là, je ne peux pas forcer l'usage de HTTPS, cela perturberait trop de lecteurs. (Pourtant, j'ai publié des enregistrements DANE mais, malheureusement, il y a encore bien des navigateurs qui, bêtement, ne les utilisent pas. Demandez aux auteurs de votre navigateur et dites-leur bien que DANE est la bonne solution à ce problème.)

Pour les flux de syndication Atom, j'avais pensé résoudre le problème en utilisant des liens « presque absolus ». Ces liens commencent par deux barres obliques, par exemple //www.bortzmeyer.org/toot.html et le logiciel client est supposé, pour le plan (http: ou https:) utiliser le même plan que celui utilisé pour récupérer le fichier où il y avait ces liens.

Avec tous les navigateurs Web, ça marche, le navigateur ajoute http: ou https: selon l'URL utilisé pour récupérer la ressource originale. J'ai malheuresement constaté que ce n'était pas le cas avec les agrégateurs de syndication. De nombreux agrégateurs ne comprennent pas ces liens, et font, par exemple, des requêtes pour une ressource //www.bortzmeyer.org/toot.html, ce qui produit une erreur 404. Le problème semble affecter, entre autres, Liferea ou spaRSS. Certains agrégateurs ont corrigé (Netvibes) mais d'autres trainent la patte.

Qui a raison ? Ce n'est pas évident. La syntaxe des URI est normalisé par le RFC 3986, qui semble autoriser ces URI relatifs commençant par deux barres obliques (section 4.2 du RFC, « A relative reference that begins with two slash characters is termed a network-path reference », et l'exemple //g en 5.4.1). Ces URI « double slash » sont également appelés « protocol-relative URIs » ou « protocol-less URIs », termes tout à fait erronés puisque le plan n'est pas forcément un protocole, « scheme-relative URIs » serait un meilleur terme. De toute façon, personnellement, je trouve le RFC peu clair sur ce point : ces URI sont légaux mais leur sémantique est mal expliquée. En attendant, le RFC sur Atom (RFC 4287) semble décourager l'usage de liens non-absolus (sections 4.2.7.1 et 4.2.6). (Pour RSS, les liens non-absolus sont clairement interdits car RSS n'a pas de notion d'« URL de base », contrairement à Atom.)

Un autre inconvénient de ces liens presques absolus étaient qu'ils ne donnent pas le résultat attendu si le flux Atom a été récupéré par un autre moyen que HTTP ou HTTPS (par exemple un fichier sur le disque local).

Plutôt que d'essayer de faire corriger tous les agrégateurs, j'ai préféré offrir le choix au lecteur, qui va donc devoir manuellement sélectionner le flux qu'il préfère.

Voici donc les quatre flux Atom. Il y a en effet le choix entre TLS ou pas (pour la sécurité et la vie privée) et article complet ou pas :

Merci à tous les signaleurs de bogue et notamment à Styx.

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)