15 mars 2013

Internet, les blogs et RSS pour les nuls

Parallèlement à l'arrêt de Google Reader, on parle beaucoup de RSS. Par exemple, un commentateur a un de mes billets a dit : "Oui il faut pas confondre google reader et flux RSS car même si le RSS n'a pas eu le succès escompté mais c'est un outil indispensable pour faire sa veille." Le hic : RSS n'est pas un outil. C'est un format de fichier. Les gens évoquent RSS mais ne savent pas ce que c'est... Ils utilisent des mots sans savoir ce qu’il y a derrière. Je dois avouer que j'ai eu beaucoup de mal à comprendre, retroussons les manches... Et reprenons à la base. Tu permets que je te tutoie ?

Quand, dans ton navigateur, tu cliques sur un lien, tu choisis un favori ou tu tapes l'adresse de mon blog, tu envoie, en fait, une requête http. C'est un peu comme si tu faisais un numéro de téléphone.

Il va donc partir sur le réseau http://www.aubistrogeek.com avec un pas d'autres informations (où tu es, quel navigateur tu utilises, comment tu es arrivé sur le site, par exemple). Ton fournisseur d'accès va envoyer tout ça à un serveur de routage (les machins DNS) qui va savoir où est le serveur qui gère aubistrogeek.com pour lui envoyer tout ce bordel.

En fait aubistrogeek.com est un pseudo pour jegweb.blogspot.com. C'est donc le serveur blogspot.com qui va recevoir la demande. Blogspot est le machin qui héberge les blogs Blogger, la filiale de Google qui gère les blogs. D'autres blogueurs ont fait des choix différents des miens. Ils peuvent, par exemple, avoir leurs propres serveurs chez eux. Le machin DNS saura où envoyer la demande (il va convertir le nom de domaine en adresse IP, mais je ne vais pas descendre jusque là).

Nous en étions au moment où blogspot.com reçoit la demande pour jegweb.blogspot.com. Il va se dire : "tiens ! Un appel pour le blog jegweb." Et transmettre tout ça à l'application qui gère mon bordel.

Celle-ci va alors préparer une page HTML que le serveur va renvoyer à votre navigateur pour lui donner des instructions. Notre navigateur va recevoir çà et sous votre regard émerveillé mon blog va s'afficher...

Que va contenir la page HTML ? 

Tu peux regarder toi-même, si tu veux. Par exemple, si tu es avec Firefox, tu trouveras dans les menus une option "outil pour les développeurs" puis "afficher le code source". Tu n'y comprends rien ? C'est normal... Mais il y a 10 ou 12 ans, c'est ce genre de merdier qu'il nous fallait taper si on voulait gérer un serveur web.

La page HTML va contenir, globalement des instructions d'affichage, du texte à afficher, des adresses d'images à afficher, des bouts de "scripts",...

Par exemple, pour mon blog, il y aura l'instruction : "Hé ! Banane ! Affiche donc en haut à gauche et en gros : Partageons l'addiction" puis "Hé ! Banane ! Affiche donc en dessous le slogan du blog mais en plus petit".

Ces instructions sont appelées : balises html. Il va y en avoir pour un tas de trucs, comme afficher du texte, insérer un lien, afficher une image à aller chercher sur un serveur, exécuter un bout de programme,...

T'as vu ? En haut à droite, j'ai un machin avec les cercles Google+. Je suppose que dans la page HTML, j'ai un bout de commande qui dit : vas donc voir sur les serveurs de Google+ ce qu'il faut faire pour "le comptoir de Jegoun". Le serveur Google+ enverra alors des instructions à ton navigateur...

Tu as bien suivi ?

Je résume... Tu tapes http://www.aubistrogeek.com. Le réseau envoie ça à un serveur Blogspot dont une application va transmettre une page html avec des instructions pour ton aviateur qui, dans la joie et la bonne humeur, exécutera ces instructions pour que tu puisses voir mon blog.

Je vais m'attarder un peu sur le HTML. C'est important. C'est une norme qui permet, globalement, à un serveur de parler dans une langue connue par le navigateur. La norme évolue sans cesse. Elle est définie par le W3C (World Wide Web Consortium) qui est un organisme à but non lucratif, composé des industriels, des gens qui font des navigateurs. Les anciennes versions étaient très lourdes et on a vu éclore des tas de machins qui se sont greffés dessus, comme le Javascript qui s’est greffé dessus pour nous faire des machins comme on voit actuellement. Nous en sommes à HTML 5 qui est commence à voir le jour. Elle permet un tas de nouveaux trucs, comme l'affichage de vidéos en streaming sans passer par des serveurs comme YouTube et sans Flash ce qui sera bien pratique mais on s’en fout, à ce stade.

Bref, comme dit Wikipedia : « L’Hypertext Markup Language, généralement abrégé HTML, est le format de données conçu pour représenter les pages web. » Je répète : c’est la base ; ça permet à un serveur de parler à un navigateur.

Tant que je parle de normes, il me faut évoquer XML. C’est aussi un machin défini par le W3C. C’est ce qui permet de transporter des données sur le web. Hier, par exemple, à propos de la disparition de Google Reader, on disait qu’on pouvait télécharger la liste des blogs auxquels on est abonné. Je te disais comment le faire… Si tu l’as fait, regarde le fichier vite-fait. C’est important que des gugusses fassent ce genre de normes, sinon on serait toujours à échanger des 0 et des 1 sans savoir quoi en faire… Il y a plein de normes, comme ça ! Par exemple, IMAP est la norme qui vous permet de récupérer les messages dans une messagerie.

Revenons aux blogs. Votre navigateur ne sait pas ce qu’est un blog. C’est donc le serveur web qui va lui envoyer les instructions en HTML, voire des données en XML (ou un mix des deux, le langage XHMTL).

Qu’est-ce que le serveur de blog ?

C'est, d'un côté, ce que je vais appeler une application, c'est-à-dire un ensemble de logiciels et, de l'autre côté, une base de données, soit un ensemble de fichiers. L'application va utiliser ces données pour préparer une page HTML pour ton navigateur.

Cette base de données à plusieurs volet : la description du blog, les billets et les machins comme les images qui sont affichées dans les billets.

La description du blog est ce qui permet sa mise en page, la couleur du fond, le contenu des colonnes, la police de caractères, le détail de la blogroll,... Appelle-ça comme tu veux : feuille de style, CMS,... peu importe. Pour des lascars comme moi, qui gèrent leurs blogs avec Blogger, tout cela est presque transparent.

Les "billets" est la partie qui évolue au quotidien est qui contient la description des billets : le titre, le texte, la présentation, la position des images (stockées à part dans ce que j'appelais "les machins", ci-dessus).

Je résume à nouveau. Pour l'affichage d'un blog, nous avons trois trucs qui interviennent : ton navigateur, le serveur web et la base de données.

Le serveur web est très fort : il va pouvoir préparer les pages html de différentes manières selon que tu consultes le blog d'un ordinateur ou d'un smartphone.

On a donc 3 machins, le navigateur, le serveur et la base. On appelle ça une architecture 3 tiers ("tier" est un mot anglais qui veut dire niveau, ce que je sais depuis peu). Ceci a peu d'importance dans le cadre du présent billet mais c'est pour ta culture générale parce que c'est la base de l'informatique actuelle. Prends l’exemple de ta banque. Pour consulter tes comptes tu as un navigateur, un serveur et une base de données. Ton conseiller financier aussi. Le navigateur et la base de données seront les mêmes. Seul le serveur change... Réfléchis bien à ça. La standardisation par les normes est importante. Vos navigateurs vont parler le même langage, HTML, aux deux serveurs différents qui parleront avec le même langage à la base de données.

Deux serveurs différents ? Pour les blogs, c'est pareil. Par exemple, pour voir mon blog, j'utilise (et toi aussi) un serveur blogspot.com (redirigé à partir de aubistrogeek.com). Pour gérer mon blog, j'utilise un autre serveur, blogger.com. En fait, ce sont plus précisément trois serveurs : un pour la consultation sur ordinateur, un, très proche, pour la consultation sur smartphone, un pour la gestion du blog. Pour la banque, c'est pareil. Tu auras un serveur pour consulter tes comptes sur ton PC et un autre pour consulter ton compte à partir d'un automate de type « distributeur de billets ».

Revenons à nos moutons.

Je disais qu'un blog est avant tout une base de données. Ça te troue peut-être le cul mais c'est comme ça. Les gens qui ont un blog "Wordpress.org" le savent très bien.

Cette base de données est composée de trois machins, disais-je... J'ai oublié quelques détails. Par exemple, elle contient aussi les commentaires aux billets.

Et les flux RSS ?

Ils font partis des machins que j'ai oubliés. Le fameux flux RSS ! C'est en fait un petit fichier à côté du blog. Tiens ! On parle parfois de flux ATOM. C'est à peu près pareil. Ce sont deux standards différents mais tous les deux basés sur la norme XML que j'évoquais plus haut.

Le flux RSS est un fichier qui est mis à jour quand on publie un nouveau billet, notamment. Il contient une description rapide du blog et les derniers billets, soit complets, soit tronqués. S'ils sont complets, ils peuvent avoir le même format que les billets. D'ailleurs, si tu consultes un de mes billets, il aura la même tronche dans Google Reader que sur mon blog.

L'intérêt du fichier RSS est qu'il est tout petit et "statique" alors que le blog lui même contient un tas de saloperies diverses (bannière, image de fond, blogroll, les commentaires, le soft pour gérer les commentaires...). Le fichier HTML est généré à chaque affichage du blog.

Si tu utilises Netvibes ou une application sur smartphone, tu auras remarqué que l'affichage prend quelques temps : il faut que le serveur qui gère ça aille voir si les flux RSS de chaque blog ont été modifiés depuis la dernière fois puis, le ça échéant, le télécharge. Si besoin, il va le traduire en HTML pour que ton navigateur l'affiche.

Autour des flux RSS, il y a une espèce de double malentendu. D'une part, la notion de flux est un peu abusive. Ça vient probablement de l'anglais ou d'un vieil usage dans l'informatique. D'autre part, l'abonnement aux flux ne vient pas du fait qu'on s'abonne à un blog mais qu'autrefois il fallait être abonné pour pouvoir lire un flux. Vous vous abonniez à un blog dans votre agrégateur et, lui, s'abonnait au flux pour avoir l'autorisation de le lire.

Avec le terme abonnement, on avait l'impression que c'est l'abonné (l'agrégateur) qui recevait automatiquement l'information (comme on reçoit dans notre boîte à lettres un journal auquel on est abonnés) alors que c'est bien l'agrégateur qui va chercher le fichier avec ce qu'on appelle un flux.

L'utilisation quasi obligatoire à une époque de feedburner rendait cette notion d'abonnement plus réelle. Comme Google Reader et Feedburner étaient dans la même boutique, ça facilitait la chose.

Bon...

Il n'y a pas que les agrégateurs ou lecteurs de flux qui utilisent les flux RSS. Par exemple, les billets de ce blogs sont publiés automatiquement sur mon compte Twitter et ma page Facebook. Pour ce faire, j'utilise dlvr.it qui va vérifier périodiquement le flux de mon blog pour voir s'il y a du neuf.

Tous les dix minutes, dlvr.it appelle Blogspot : "hé ho ! Y'a du neuf chez aubistrogeek.com ?", Blogspot renverra la question à Blogger qui renverra la question à Feedburner... Vous imaginez le bordel !

Autre exemple... Vous voyez en haut de ma colonne la plus à droite. Il y a une blogroll dynamique. Les blogs y sont affichés avec le dernier billet de chacun. C'est basé sur les flux.

Allez sur mon blog politique. Je ne sais plus combien de blogs sont présentés. Disons 150. A chaque fois qu'une andouille ouvre mon blog, il faut que blogueur aille voir les flux de chacun d'entre eux pour aller voir les billets de chacun (et ne présente que les 25 derniers). Vous avez vu ce bordel ? 8 ou 900 fois par jour, il va interroger 150 blogs, tout ça pour quelques loustics qui cliquent...

Je résume. Le flux RSS et son concurrent, le flux ATOM, sont des petits fichiers à côté des blogs que vont périodiquement mais fréquemment consulter des applications pour demander : "alors, quoi de neuf sur ce site ?". La réponse est négative dans 100% des cas.

J'espère que vous avez tout compris jusque là ! Des puristes pourront apporter des précisions si je me plante. Qu'ils ne focalisent pas sur les détails, je ne fais que vulgariser. Merde, quoi. Vive la vulgarisation.

Un dernier détail. Les flux RSS ne sont pas dédiés aux blogs ou aux sites web. Par exemple, si vous suivez le compte Twitter @leftblogs, il contient tous les billets de notre groupe de blogueurs gauchistes. Il est diffusé par dlvr.it sur la base d'un flux RSS qui agrège les flux RSS des blogs de tous les membres du groupe. Autre exemple, vous pouvez vous abonner à un flux RSS avec l'ensemble des tweets que vous avez marqué comme favoris.

Il existe, ainsi, des centaines de millions, probablement des milliards de flux RSS. C'est le bordel.

Bref…

Quand j’ai commencé à bloguer, fin 95, on ne parlait pas des flux RSS. On allait dans les blogs à la main, de blogroll en blogroll. La notion a commencé à se développer par la suite, j’ai appris que j’avais moi-même un flux RSS et que tous les blogs en avaient.

Techniquement, ça restait un peu du chinois. Les gens parlaient de syndication ou de mots compliqués comme ça. On y comprenait que dalle. C’est en 2007 qu’on a commencé à comprendre que la « syndication de contenu » était très importante et l’avenir du web.

On a commencé à s’abonner aux blogs dans Netvibes, qu’on aimait bien, c’était un truc Français. Il est sorti en 2005, trois semaines avant que Google ne sorte son service… On est passé à Google Reader pour différentes raisons, notamment qu’il offrait des services complémentaires.

RSS ne mourra pas. Google Reader sera repris par Feedly, ils ont vraisemblablement des accords. Google Reader n’avait plus aucun intérêt pour Google qui développe une autre approche du web.

C'est quoi RSS ?

Il faut que je réponde à mon commentateur. Ce n'est pas un outil.

C'est un petit fichier, annexé aux sites web, qui décrit les dernières modifications de celui-ci. Pourquoi voudriez-vous que ça disparaisse ?

20 commentaires:

  1. beaucoup trop long je me le garde derrière l'oreille pour comprendre un jour ce qu'est un flusque èrèsehès :)

    RépondreSupprimer
  2. Moi qui suis une tanche en flux machin, je te remercie de tous ces éclaircissements.

    RépondreSupprimer
  3. Puisque tu cherche à définir RSS, tu aurais put dire ce que ça veux dire : "Realy Simple Syndication". Ça résume d'ailleurs assez bien l'explication. XD

    Jolie tentative de vulgarisation.
    Faudra quand même creuser un peut la partie serveur et résolution DNS...
    ;-)

    RépondreSupprimer
    Réponses
    1. Merci...

      Pour la partie DNS, je n'y connais pas grand chose. Pour les serveurs, c'est un peu mon job (d'un point de vue fonctionnel) mais pas sur le web. Si j'avais approfondi sur le web, j'aurais sûrement été à côté de la plaque pour les blogs.

      Supprimer
    2. ben alors ? C'est quoi ce boulot ? (smile)

      Supprimer
  4. Et le mec qui a pondu le RSS Aaron Swarz, s'est suicidé il y a quelques semaines.

    RépondreSupprimer
    Réponses
    1. Tu crois que c'est en rapport avec Reader ?

      - Ok, je sort... -

      Supprimer
    2. On va dire que c'est un peu lamentable de la part de Google d'annoncer ça un peu après la mort du père du truc à la base.

      Supprimer
  5. Je savais bien que c'était un format , je me suis trompé dans les mots , bon article intéressant a lire (un rappel ne fait pas de mal)

    RépondreSupprimer
  6. Merci ! (Ma "critique" n'était pas nominative. J'ai vu un tas d'autres trucs de ce genre. Ce n'était qu'une introduction).

    RépondreSupprimer
  7. Article utile, on parle trop peu du RSS. Pour revenir sur la dernière nouvelle et ce que je disais sur le fait que Google veut vraiment « tuer » le RSS (et j'entends par là le format, pas que Google Reader) : une preuve de plus est qu'il a aussi supprimé l'extension Chrome qui permettait de s'abonner rapidement depuis un site : cf. http://techcrunch.com/2013/03/15/google-kills-rss/. Il y a donc bien volonté d'en finir avec le format pour promouvoir G+. Déjà que le RSS était une techno peu utilisée, si en plus Google se met à taper dessus, ça ne va pas s'arranger...

    RépondreSupprimer
    Réponses
    1. Pas que pur promouvoir G+... Pour tuer la veille et la diffusion sur les autres réseaux sociaux...

      Supprimer
  8. Merci bien pour cette vulgarisation assez claire dans son genre.

    RépondreSupprimer

La modération des commentaires s'active automatiquement deux jours après la publication des billets (pour me permettre de tout suivre). N'hésitez pas à commenter pour autant !