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 ?
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.
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.
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.
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 :
updatePeriod qui indique l'intervalle de mise à jour du canal. Les valeurs admises sont :hourly,daily,weekly,monthly,yearly. S'il est omis,dailyest la valeur par défaut.
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, uneupdatePeriodayant comme valeur "daily", et uneupdateFrequencyde 2 indiquent que le canal est mis à jour deux fois par jour. S'il est omis, la valeur par défaut est de 1.
updateBase, qui définit une date de base à utiliser de concert avec.updatePeriodetupdateFrequencypour calculer le calendrier de publication. Le format de date prend la formeyyyy-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.
Qu'en est-il à présent de l'implémentation dans les applications RSS ? Le travail à effectuer est minime, mais est-il utile ?
La plupart des outils de blogs ne proposent rien pour régler ces paramètres. Qu'à cela ne tienne, nous avons plusieurs possibilités :
De ce côté aussi, peu d'outils comprennent cette extension. Là encore, vous pouvez :
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.
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.
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 .
Une question, une remarque ? Écrivez à l'auteur.
Page valide XHTML 1 Strict,
CSS2 et
accessible AA.
Ce site s'affiche mieux dans un navigateur conforme aux standards,
voici pourquoi.
Site hébergé par l'APINC
et propulsé par SPIP.