Indiquer la fréquence de mise à jour d’un fil de syndication au format RSS

Openweb.eu.org > Articles  > Indiquer la fréquence de mise à jour d’un fil de syndication au format RSS

Abstract

Les fils de syndication, et particulièrement ceux au format RSS, connaissent un succès chaque jour croissant. Mais on voit en parallèle s’accroître la consommation de bande passante et de temps serveur. Comment faire pour ne pas effectuer de multiples requêtes inutiles sur des informations actualisées tout au plus quotidiennement ?

Article

Les moyens de veille et d'information ont profondément changé avec l'avènement de la syndication. Nous sommes passés de l'ère de la lettre d'information mensuelle ou hebdomadaire, parfois quotidienne, à une surveillance souvent horaire d'un nombre de sites toujours plus important, via les outils de syndication de contenu. Ceci peut entraîner une consommation inutile et non négligeable de bande passante et de temps serveur. Il s'avère donc indispensable de limiter le trafic lié à la syndication, autant côté client que côté serveur.

La théorie

Un début de prise en compte

Le format RSS2.0 permet l'ajout d'un élément ttl dans l'entête d'un fil. La valeur de cet élément correspond à une durée en minutes indiquant la durée de vie (Time To Live) de l'information.

Voici un exemple minimal :

<?xml version="1.0"?>
<rss version="2.0">
 <channel>
  <title>Mon site</title>
  <link>http://www.example.org/</link>

  <description>Ma description</description>
  <ttl>90</ttl>
  <item>
   <title>Une actu</title>

   <link>http://www.example.org/2005/01/01</link>
   <description>Un peu de texte pour décrire mon info</description>
  </item>
 </channel>
</rss>

Cet exemple indique de ne pas réinterroger ce fil avant 90 minutes.

Un mécanisme d'évitement

Le format RSS0.91 avait introduit la possibilité d'indiquer les jours et heures durant lesquels il n'y a pas de publication. Ces éléments existent également en RSS2.0 (mais pas en RSS1.0 dont nous allons parler plus loin).

En voici un exemple en RSS0.91 :

<?xml version="1.0"?>
<rss version="0.91">
 <channel>
  <title>Mon site</title>
  <link>http://www.example.org/</link>

  <description>Ma description</description>
  <image>
   <title>Mon image</title>
   <url>http://www.exemple.org/images/logo.png</url>

   <link>http://www.exemple.org/</link>
   <width>100</width>
   <height>100</height>
   <description>Mon logo</description>

  </image>
  <skipDays>
   <day>Monday</day>
   <day>Tuesday</day>
   <day>Wednesday</day>

   <day>Thursday</day>
   <day>Friday</day>
  </skipDays>
  <skipHours>
   <hour>1</hour>

   <hour>2</hour>
   <hour>3</hour>
   <hour>4</hour>
   <hour>5</hour>

  </skipHours>
  <item>
   <title>Une actu</title>
   <link>http://www.example.org/2005/01/01</link>
   <description>Un peu de texte pour décrire mon info</description>

  </item>
 </channel>
</rss>

Ici, rien n'est publié en semaine, ni entre 1 heure et 5 heures du matin.

Une extension plus convaincante

Il est heureusement possible de décrire son rythme d'actualisation de manière plus fine grâce à RSS1.0. Son module syndication permet en effet de spécifier :

  • L'intervalle de mise à jour via updatePeriod qui indique l'intervalle de mise à jour du canal. Les valeurs admises sont : hourly, daily, weekly, monthly, yearly. S'il est omis, daily est la valeur par défaut.
  • La fréquence de mise à jour via updateFrequency qui est utilisé pour décrire la fréquence de mise à jour dans l'intervalle donnée. Un entier indique combien de fois le canal est mis à jour dans cet intervalle. Par exemple, une updatePeriod ayant comme valeur "daily", et une updateFrequency de 2 indiquent que le canal est mis à jour deux fois par jour. S'il est omis, la valeur par défaut est de 1.
  • La date de référence via updateBase, qui définit une date de base à utiliser de concert avec updatePeriod et updateFrequency pour calculer le calendrier de publication. Le format de date prend la forme yyyy-mm-ddThh:mm .

Voici un exemple en RSS1.0

<?xml version="1.0"?>
<rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
 xmlns="http://purl.org/rss/1.0/">
 <channel rdf:about="http://www.example.org/rss/">
  <title>Mon site</title>

  <link>http://www.example.org/</link>
  <description>Ma description</description>
  <sy:updatePeriod>monthly</sy:updatePeriod>
  <sy:updateFrequency>2</sy:updateFrequency>

  <sy:updateBase>2005-01-01T12:00+00:00</sy:updateBase>
  <items>
   <rdf:Seq>
    <rdf:li resource="http://www.example.org/rss/2004/08/01/" />
   </rdf:Seq>

  </items>
 </channel>
 <item rdf:about="http://www.example.org/rss/">
  <title>Une actu</title>
  <link>http://www.example.org/rss/2005/01/01/</link>

  <description>Un peu de texte pour décrire mon info</description>
 </item>
</rdf:RDF>

Pour utiliser ce module il faut ajouter l'espace de noms dans l'élément rdf. Ici, cet espace étant sy, on ajoute à l'élément racine <rdf> l'attribut xmlns:sy="http://purl.org/rss/1.0/modules/syndication/". Puis nous ajoutons nos trois éléments de fréquence de mise à jour dans la déclaration du canal (channel) :

  • <sy:updatePeriod>monthly</sy:updatePeriod>
  • <sy:updateFrequency>2</sy:updateFrequency>
  • <sy:updateBase>2005-01-01T12:00+00:00</sy:updateBase>

La date de référence (updateBase) est exprimée sous la forme aaaa-mm-jjThh:mm+hh:mm. Les indications hh:mm qui suivent le +, ou le - suivant les cas, spécifient le décalage par rapport au temps universel (UTC). Une Note du W3C sur les formats de date et d'heure précise la syntaxe à utiliser pour cette date.

Dans notre exemple, le fil est donc mis à jour deux fois par mois, soit tous les quinze jours. La date de référence étant le 01/01/2005, la prochaine vérification devra avoir lieu le 16/01/2005 à 12:00.

La pratique

Qu'en est-il à présent de l'implémentation dans les applications RSS ? Le travail à effectuer est minime, mais est-il utile ?

Les outils de contenus

La plupart des outils de blogs ne proposent rien pour régler ces paramètres. Qu'à cela ne tienne, nous avons plusieurs possibilités :

  • écrire à l'auteur de l'outil comme ça a déjà été fait pour Dotclear, par exemple ;
  • modifier vous-même le gabarit utilisé pour la syndication, s'il en existe un, en ajoutant les quelques lignes qui manquent ;
  • si vous êtes l'auteur d'un outil, proposer une interface permettant de modifier le gabarit ou le code ou à défaut, proposer d'indiquer ce paramètre à l'installation.

Les outils de consultation

De ce côté aussi, peu d'outils comprennent cette extension. Là encore, vous pouvez :

  • tester un autre outil ;
  • écrire à l'auteur de l'outil que vous utilisez comme ça a été fait pour Feedreader ;
  • modifier vous-même l'outil si vous êtes développeur ;
  • si vous êtes l'auteur d'un agrégateur, prendre en compte le module syndication.

Les autres outils

Il se peut que vous vous demandiez si ce module présente un intérêt réel. Il est vrai que peu d'outils le prennent actuellement en compte mais RSS est un format jeune et il n'y a pas que les agrégateurs qui lisent les fils de syndication. C'est aussi le cas d'annuaires, de moteurs de recherche, etc. Sans compter d'autres outils qui vont certainement voir le jour.

Conclusion

Indiquer la fréquence de mise à jour de votre fil RSS demande donc peu de travail et représente un investissement pour l'avenir. Il s'agit d'optimiser la charge du réseau et du serveur en limitant le rythme des requêtes. Mais il peut aussi s'agir d'accélerer la fréquence pour un site d'actualités en temps réel. Libération, l'Humanité ou RTL possédent déjà un fil de syndication et on peut parier sans grand risque que les autres grands journaux vont les suivre.

En combinant l'ensemble des techniques exposées, surtout si vous utilisez RSS2.0, vos lecteurs n'auront plus aucune excuse s'ils se demandent encore quand est prévue la prochaine publication.

Note : —

Cet article fait référence à RSS0.91, RSS1.0 et RSS2.0, qui, en dépit de leur nom, ne représentent pas des évolutions d'un seul et même format, mais des formats différents. C'est pourquoi certaines possibilités ne se retrouvent pas d'une version sur l'autre. Pour plus d'informations, voir l'introduction à RSS .

À propos de cet article

  • Openweb.eu.org
  • Profil : Débutant, Expert, Gourou
  • Technologie : RSS
  • Auteur :
  • Publié le :
  • Mise à jour : 19 mai 2008

Vos commentaires

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?
Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Suivre les commentaires : RSS 2.0 | Atom