Overblog
Suivre ce blog Administration + Créer mon blog
21 février 2010 7 21 /02 /février /2010 16:58

Excuserez-vous ce titre bien pitoyable ? Espérons.

Il y a des incantations, des sortilèges, des charmes infaillibles, des phrases magiques.  Videz le cache de votre navigateur  en est une que vous lisez parfois sur le Po… l'adhésif jaune repositionnable, généralement au terme d'un chantier de décoration sur ce blog. Elle mérite peut-être explication.


Souvenir du temps d'avant les ordinateurs partout : vous travaillez dans un grand machin quelconque, entreprise ou administration. Dans l'immeuble du grand machin, une ou deux centaines de personnes, chacune avec sa ligne de téléphone (grand machin quelconque mais môôderne).

Voilà que vous devez appeler Tartempion dont le numéro vous est inconnu. Débutant naïf, vous prenez l'ascenseur et allez demander le renseignement à la secrétaire du grand chef.

La première fois elle pose son tricot, vous accueille aimablement (débutant naïf, vous imaginez que ça tient à votre charme naturel et votre frais minois), ouvre sa grande armoire et y prend une liste téléphonique, qu'elle vous donne.

La deuxième fois… il n'y a pas de deuxième fois : vous n'avez plus besoin de prendre l'ascenseur ni de déranger l'assistante avant chaque coup de fil puisque vous avez la liste dans un coin de votre bureau.

Un jour ce bon vieux Tartempion ne répond plus : Lenglumé a repris bureau et cocottes en papier, votre liste n'est plus à jour. En attendant la prochaine édition de l'annuaire, que faites-vous ? Vous reprenez l'ascenseur, toujours plein d'illusions sur votre frais minois, et revenez avec un papier récent, imprimé rien que pour vous par la délicieuse assistante.

Scènes banales de la vie de bureau.


Maintenant vous êtes un navigateur Web arrivant pour la première fois sur  Jus de méninges , merveilleux site tricoté à la main. Puisque c'est la première fois vous demandez au serveur tous les fichiers nécessaires : page HTML, images, scripts, CSS… toute la lyre, et cela prend un certain temps, même avec une liaison ADSL.

Comme vous êtes un navigateur prévoyant, installé sur un micro avec un disque dur, vous gardez copie de tout dans un coin : ça peut resservir.

Justement, il vous prend fantaisie de lire les commentaires de l'article : c'est une autre page HTML mais elle réutilise certains des éléments de la page précédente : images, scripts, CSS.

Justement, vous aviez mis ces éléments de côté. Vous les rechargez donc à partir de votre disque dur : ça va beaucoup plus vite qu'à partir du serveur.

Le  cache  du navigateur n'est rien d'autre que ce coin de disque dur où stocker les clous et les vis qui peuvent toujours servir. La notion ressortit donc plus à la bonne organisation et au gain de temps qu'à la haute technologie.

Reste la question de Lenglumé remplaçant Tartempion : que faire si le fichier sur le serveur (la grande armoire de l'assistante) n'est plus le même que dans le cache (la feuille calée sous votre téléphone) ? Bien sûr qu'il faut demander la version la plus récente, la plus  fraîche  :  rafraîchir le cache , expression qui met l'accent sur ce qu'on récupère ou  vider le cache , qui insiste davantage sur ce qu'on élimine.

Mais comment savoir que le cache n'est plus à jour ? Si vous répondez :  yaka récupérer le fichier du serveur et le comparer, octet par octet, avec celui du cache , vous avez tout faux, et doublement. D'abord, et puisque vous avez récupéré le fichier du serveur, à quoi bon le cache ? Ensuite, il s'agit tout de même de gagner du temps…

Il s'agit de gagner du temps, donc la réponse ne peut que dépendre des circonstances, de ce que l'auteur du site sait sur les fichiers qu'il distribue, de l'anticipation qu'il fait des demandes de l'utilisateur, etc. . Ce qui ouvre plusieurs options :

  1. comparer la date du fichier sur le serveur et celle du fichier mis en cache, ne transmettre le fichier du serveur que s'il est plus récent que celui du cache. Ce choix semble raisonnable, cependant il demande tout de même un dialogue préalable entre client et serveur, dialogue qui serait bien chronophage s'il avait lieu pour tous les fichiers. On réserve donc plutôt ce traitement à certains fichiers : ceux pour lesquels il est impératif d'être à jour mais qui ne changent que  de temps en temps .
    Selon que l'une ou l'autre de ces conditions manque à l'appel on est conduit aux deux choix suivants, et opposés.
  2. distribuer d'autorité le fichier sur le serveur, parce que ce fichier change souvent ou parce qu'on ne peut pas prendre le risque d'utiliser une ancienne version. Ce fichier n'est donc pas mis en cache. C'est le cas, dans ce blog, du fichier HTML parce que quelque chose est toujours susceptible d'y avoir changé d'une fois sur l'autre – ne serait-ce que l'heure affichée ou, comme chez moi, le nombre de lecteurs connectés.
  3. attendre que le lecteur se manifeste (= découvre le départ de Tartempion, vide le cache) pour lui envoyer la nouvelle version. Typiquement le cas des photos, et aussi celui du fichier CSS qui, chez un blogueur normal (donc pas moi) ne change pas tous les matins.

En résumé : vider le cache vous garantit de disposer de fichiers à jour mais prend un temps non négligeable. Le faire systématiquement serait du gaspillage, ne pas savoir le faire ni ce que ça signifie vous expose à des surprises. Donc : le garder pour les moments de doute ou ceux où l'on vous demande de le faire.


Ne croyez pas que ce mécanisme soit propre aux navigateurs.

Un problème fréquent, et pas particulier à l'informatique, est de trouver rapidement un renseignement fiable dans une grande masse de données, sans trop se castagner avec les voisins qui demandent la même chose au même moment. Aucun support de stockage ne combine grande capacité et conservation à terme et rapidité d'accès et bas prix, il y a toujours un point faible.

Dans certains cas, la bonne idée est d'anticiper, de mettre dans un  tampon  (buffer) de mémoire rapide les données dont on sait (raisonnablement) qu'elles seront bientôt demandées. Exemple : charger la minute suivante d'une vidéo tandis qu'on regarde la précédente.

Dans d'autres cas, la bonne idée est de  garder sous la main  les données dont on sait (raisonnablement toujours) qu'elles resserviront bientôt. Là il s'agit de cache, on trouve donc des caches partout :

  • dans votre disque dur, les secteurs les plus souvent lus (exemple : les répertoires) peuvent se trouver en cache dans un coin de mémoire rapide installée sur le disque, ce qui évite de les relire à tout bout de champ ;
  • de même pour les énormes disques durs des serveurs d'OB ( cache serveur ) ;
  • en fait, dans tous les cas où un petit paquet de données a de bonnes chances de servir souvent.

Un cache, pour finir, ça se gère, tout comme vous ne pouvez pas encombrer votre bureau d'un tas de papiers  au cas où . Cette gestion est automatique et repose sur un principe simple : quand il y a besoin de place on élimine ce qui n'a pas servi (= pas été lu) depuis longtemps. Ce qui explique que, si vous revenez sur un site après en avoir parcouru de très nombreux autres, il se peut que ce site déjà visité (et donc mis en cache en son temps) doive pourtant être intégralement redemandé au serveur.

Si cela arrive trop souvent à votre goût, il est temps de changer vos habitudes ou d'agrandir l'espace alloué au cache.

Bref : comme souvent, les termes étranges recouvrent des questions très familières.

Archives