Cette page explique la syndication Web avec RSS. Vous y apprendrez comment faire pour que visiteurs et machines trouvent facilement votre flux RSS.
Présentation de la syndication
La syndication (ou syndication Web) consiste à mettre à disposition d'autres personnes du contenu texte, photo, audio, ou vidéo. Lorsque vous écrivez sur votre blog, que vous produisez une émission de radio ou de télévision par Internet, vous syndiquez.
RSS vous aide à syndiquer du contenu, en le présentant sous un format aisément exploitable par des machines.
La syndication avec RSS implique 3 choses :
- Créer un flux RSS.
- Ajouter un élément
<link>
spécial dans une ou des pages HTML. - Ajouter un élément
<a>
spécial dans une ou des pages HTML.
Nous avons déjà évoqué le 1er point - la création des flux RSS - aussi nous intéresserons nous plus particulièrement aux points 2 et 3 dans ce document.
Ajouter l'élément <link>
Souvent, les données présentes dans un flux RSS le sont également sur une page Web HTML. Lorsque c'est le cas, la page Web HTML peut signaler la présence du flux aux visiteurs et aux machines avec un code comme celui-ci :
<link rel="alternate" type="application/rss+xml" href="https://example.com/feed" />
Vous pouvez également annoncer le flux RSS depuis d'autres emplacements (par exemple, depuis un billet de blog). Vous pouvez utiliser dans ce cas un code similaire à ceci :
<link rel="home" type="application/rss+xml" href="https://example.com/feed" />
Remarquez que cela ressemble fortement au code précédent, la seule différence étant la valeur de l'attribut rel
(la valeur de rel
dans le code précédent était alternate
, elle est ici home
.
NOTE : Il y a pas mal d'abus dans l'utilisation de l'élément <link>
pour la syndication RSS. Certains blogueurs veulent que les internautes puissent s'abonner à leur blog depuis n'importe quelle page (et pas uniquement leur page d'accueil). Beaucoup ont donc ajouté l'élément <link>
avec un attribut rel="alternate"
sur chaque page (dans les entrées du blog également, et pas uniquement sur la page d'accueil). C'est une mauvaise pratique ! Cela devrait être rel="home"
. (Voir Understanding rel and rev pour plus d'informations.) La chose la plus importante lorsque vous utilisez l'élément <link>
pour la syndication de votre flux RSS est de mettre l'attribut type="application/rss+xml"
.
Ajouter l'élément <a>
L'utilisation de l'élement HTML <link>
est très puissante mais elle est la plupart de temps cachée. Pour publier plus directement votre flux RSS, vous pouvez utiliser l'élément HTML <a>
. Cela imite l'élément <link>
que nous venons de voir.
Quand vous faites un lien depuis la page Web où les données d'un flux RSS sont également présentes, utilisez :
<a rel="alternate" type="application/rss+xml" href="https://example.com/feed">…</a>
Quand vous faites un lien depuis, par exemple, un article de blog, utilisez le code suivant :
<a rel="home" type="application/rss+xml" href="https://example.com/feed">…</a>
Une nouvelle fois, remarquez que les deux codes sont très similaires. Seule la valeur de l'attribut rel
change. La valeur de rel du premier code est alternate
; dans le second elle est home
.
Icônes de flux
Les flux RSS (ainsi que les autres) utilisent une icône spécifique. Il est recommandé de l'utiliser lorsque vous créez le lien spécial <a>
vers votre flux. Cette icône ressemble à cela :
Vous pouvez obtenir d'autres icônes de ce type sur le site Feed Icons. Il existe différentes couleurs et tailles, et les fichiers sources sont disponibles également.
Techniques de syndication avancée
Bien que cette technique de syndication avancée ne soit pas nécessaire, son support est recommandé ; en particulier pour les sites Web et les applications avec de grande exigence de performance.
Le protocole HTTP -- l'une des technologies clef du Web -- fournit un moyen d'établir des priorités dans le type de contenu qu'un client HTTP préfère recevoir. Cette technique en tire avantage en faisant en sorte que le client préfére RSS (plutôt que HTML ou un autre format). Voici un exemple simple de ce qui peut être fait :
Accept: application/rss+xml, text/html
Cependant, avec des logiciels de production, cela ressemblera plus à :
Accept: application/rss+xml, application/xhtml+xml, text/html
Voici un exemple plus complet :
GET / HTTP/1.1 Host: exemple.com Accept: application/rss+xml, application/xhtml+xml, text/html
Lorsqu'un serveur HTTP (ou un script côté serveur) reçoit ce code, il devrait rediriger le client HTTP vers le flux, en envoyant un code HTTP 302 Found
. Ce qui donne quelque chose comme :
HTTP/1.1 302 Found Location: https://example.com/feed