La mode aujourd'hui est à l'écologie, à l'attention portée à la consommation des ressources, à l'économie des moyens pour obtenir un résultat satisfaisant. Et pourtant, on trouve sur le web, haut lieu de la réflexion contemporaine (alors, chatroulette ou shadyurl ?), des personnes qui apparaissent pourtant bien sous tout rapport, et pourtant, se laissent aller aux plus infâmes gâchis. Comment repérer ces malotrus ? C'est simple, ils utilisent Google Feedburner, un service gratuit de Google qui a pour seul but de collecter vos informations personnelles et de consommer inutilement des ressources. On peut abréger cette description en "un service de Google" évidemment. Concrètement, comment ça se passe ? Vous demandez à accéder une ressource, par exemple http://www.christian-faure.net/wp-rss2.php (non pas de lien, ce serait gâcher, vous allez voir pourquoi). Cette ressource représente les derniers articles publiés par une personne anonyme sur son blog (pour la définition du mot "anonyme", je vous renvoie au "Grand Hixie Illustré"). Que se passe-t-il pour accéder à cette ressource, dont la représentation physique faisant foi est créée et hébergée sur la machine répondant au nom d'hôte (anonyme lui aussi) www.christian-faure.net ?

$ lynx -dump -head http://www.christian-faure.net/wp-rss2.php
HTTP/1.0 301 Moved Permanently
Date: Fri, 19 Feb 2010 20:35:02 GMT
Server: Apache
X-Powered-By: W3 Total Cache/0.8.5.1
Location: http://www.christian-faure.net/feed/
Connection: close
Content-Type: text/html

Le serveur nous répond que la ressource est un fichier HTML (en même temps, dans le "Grand Hixie Illustré", tout peut être lu en tant que HTML, donc ça n'est pas forcément faux), qui se trouve désormais de façon permanente à l'adresse http://www.christian-faure.net/feed/ . On remarque la discrète entête publicitaire "W3 Total Cache", parce que c'est bien connu, dans l'écosystème Wordpress, la modestie est une vertu cardinale. Poursuivons.

$ lynx -dump -head http://www.christian-faure.net/feed/
HTTP/1.1 302 Found
Date: Fri, 19 Feb 2010 20:55:28 GMT
Server: Apache
X-Powered-By: W3 Total Cache/0.8.5.1
X-Pingback: http://www.christian-faure.net/xmlrpc.php
Last-Modified: Fri, 19 Feb 2010 18:12:53 GMT
ETag: "31c7a84cc6419c0de704b3cc16f1da48"
Location: http://feeds.feedburner.com/christian-faure/wMuM
Connection: close
Content-Type: text/html

On nous a menti ! Toujours pas de représentation, on nous demande d'aller voir du côté de chez Google Feedburner, avec au passage une information, comme quoi la ressource que l'on cherche a été modifiée pour la dernière fois à 18h12 GMT. Ce qui veut dire que le serveur connaît la ressource, connaît la date de dernière modification, mais non, il ne faut pas lui demander à lui. Poursuivons.

$ lynx -dump -head http://feeds.feedburner.com/christian-faure/wMuM
HTTP/1.0 200 OK
Last-Modified: Fri, 19 Feb 2010 20:55:58 GMT
ETag: /2EpcCk4RHnd4V088LU7nfrZhew
Content-Type: text/xml; charset=UTF-8
Date: Fri, 19 Feb 2010 20:58:55 GMT
Expires: Fri, 19 Feb 2010 20:58:55 GMT
Cache-Control: private, max-age=0
X-Content-Type-Options: nosniff
Server: GSE
X-XSS-Protection: 0

Et là, c'est la réponde finale (200 OK). On apprend donc que la ressource a été modifiée pour la dernière fois à 20h55 GMT... ha bon ? Moi on m'a dit y'a même pas deux secondes que c'était 18h12 ? Oui mais non, chez Google, ça vient d'être modifié. C'est conceptuellement faux, mais ça n'est pas grave. Ensuite, Google nous dit que c'est une ressource privée, à expiration immédiate, mais il nous donne en même temps deux paramètres (ETag et Last-Modified) qui ne sont utiles que si la ressource n'expire pas immédiatement. Que de gâchis ! Bon point, il nous signale qu'il sert du XML encodé en UTF-8, et pas le HTML qu'on nous promettait deux requêtes avant. Regardons donc cette ressource tant attendue.

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2frenchfull.xsl"?>
<?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" 
    xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" 
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" 
    xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
<channel><title>Christian Fauré</title> 
<link>http://www.christian-faure.net</link>
<description>Hypomnemata : supports de mémoire</description>
<lastBuildDate>Fri, 19 Feb 2010 18:12:53 +0000</lastBuildDate>
<generator>http://wordpress.org/?v=2.9</generator>
<language>fr</language>
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" 
    href="http://feeds.feedburner.com/christian-faure/wMuM" />
<feedburner:info uri="christian-faure/wmum" />
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" />
<feedburner:emailServiceId>christian-faure/wMuM</feedburner:emailServiceId>
<feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname>
<feedburner:feedFlare
    href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchristian-faure%2FwMuM" 
    src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare>
<feedburner:feedFlare 
    href="http://www.bloglines.com/sub/http://feeds.feedburner.com/christian-faure/wMuM" 
    src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare>
<feedburner:feedFlare 
    href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchristian-faure%2FwMuM" 
    src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare>
<feedburner:feedFlare 
    href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fchristian-faure%2FwMuM" 
    src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare>
<feedburner:feedFlare 
    href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchristian-faure%2FwMuM" 
    src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare>
<feedburner:feedFlare 
    href="http://add.my.yahoo.com/content?lg=fr&url=http%3A%2F%2Ffeeds.feedburner.com%2Fchristian-faure%2FwMuM" 
    src="http://us.i1.yimg.com/us.yimg.com/i/us/my/bn/intatm_fr_1.gif">Subscribe with Mon Yahoo!</feedburner:feedFlare>

Burp aussi. Nous sommes donc en présence d'un RSS en version 2, avec la déclaration de plusieurs préfixes de namespaces, dont un pour Atom, Atom qui conchie les namespaces, parce que les namespaces c'est le mal (cf. le "Grand Hixie Illustré", ce n'est plus un glossaire, c'est une bible). Au passage, Feedburner qui nous disait que la ressource avait été modifiée pour la dernière fois à 20h55, nous dit maintenant que c'était en fait à 18h12 (lastBuildDate) : faudrait savoir. Ensuite, tous les feedFlare sont utilisés uniquement si on regarde cette ressource dans un navigateur internet, mais un navigateur ne sait rien faire de ça, sauf s'il utilise la feuille de transformation référencée en relatif "rss2frenchfull.xsl", enjolivé par la feuille de style référencée en absolu (on n'est pas à une incohérence près) "itemcontent.css". Et grosso-modo, ça ne sert à rien de mettre ces feedFlare ici, ils auraient pu se trouver directement dans la feuille de transformation. Encore du gâchis. Allons directement à la fin.

<!-- This site's performance optimized by W3 Total Cache. Dramatically improve the 
speed and reliability of your blog!

Learn more about our WordPress Plugins: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk
Database Caching 10/12 queries in 0.008 seconds using disk

Served from: gmu10.infomaniak.ch @ 2010-02-19 18:21:24 -->

Un peu de publicité, ça manquait. Et pas de la publicité pour temps de cerveau pré-disposé comme Google AdSense, juste de la publicité que personne ne verra jamais : toujours du gâchis. Et puis, un mystérieux "Served from", je croyais être servi par Google moi... qui est ce mystérieux gmu10.infomaniak.ch ? Creusons un peu.

$ dig +short gmu10.infomaniak.ch
93.88.240.25

Hmmm... et à qui demandions nous initialement une ressource ?

$ dig +short www.christian-faure.net
93.88.240.25

C'est bien cela, on a fait le grand tour. Au final, on constate donc qu'internet en général, et les blogueurs en particuliers, sont extrêmement peu soucieux de l'utilisation des ressources qui les entourent, et méritent donc le bonnet d'âne de l'écologie.