HTTP Cache - kékako ?

Quand vous lisez ce blog, il est produit par un serveur.  Cad que du texte au format HTML est généré.

Ce texte au format HTML contient des liens vers d'autres fichiers à télécharger qui sont par exemple

  • des images,
  • du code javascript,
  • potentiellement d'autres "sous-pages HTML" à afficher (genre le truc à droite vers ma page FB),
  • ...

Et dans une optique de "ne pas avoir à tout recharger à chaque fois" pour économiser de la bande passante, dès

  • que vous retournez sur ma page
  • ou que vous allez sur une autre de mes pages où il y a une image commune par exemple (le smiley en haut, mon "Arfy")

vos browsers vont mettre des bout "en cache", cad qu'ils vont sauver ces bouts dans des fichiers temporaires en local sur votre PC.
Ca évite de surcharger les serveurs.  Par exemple avec mes mécanismes "par défaut" une image à une "durée de vie dans le cache" définie par exemple par le "max_age=XXX".  Ou sur la requête pour relire l'image, le serveur va réponde le code "304", qui signifie "inchangée".

Dans Firefox, tapez dans un nouvel onglet, "about:cache" pour avoir des zinfos sur combien de trucs en cache vous avez actuellement.
Dans Chrome, il y a "chrome://cache" mais bon, c'est juste une looooooooooooooooooooooooongue liste...

Et donc au final, si par exemple vous allez sur arfy.fr et que vous cliquez sur Arfy en haut à gauche, le browser, ici dans l'image Firefox, ne va plus charger les "bouts de pages/images" qu'il pense inchangées.
Je dis bien "qu'il pense inchangées": parce que chaque browser a son propre gestionnaire de cache et que de temps à autre il prends le dessus sur ce qui est réellement sur le serveur (F5-F5-F5 zut de zut, bon CTRL-F5 au final pour ignorer le cache).

arfy.fr-EnCache.png

F5, ou recharger la page toujours dans Firefox, aura un autre comportement: l'index.php va de base être "demandé" au serveur de même que plus de fichiers qu'avec une navigation DANS le même site.  Et là on verra beaucoup de "304" (inchangée).

Tout cela pour en arriver à cet article sur le mécanisme pour tenter de contrôler ce que le browser fera avec le cache que je vous partage =)
(au taf je me suis souvent battu avec le cache, surtout de Firefox, et malheureusement quand il ne veut pas... ben ça ne veut pas.  A quels moments ? Pour être sûr que quand on change de version sur le serveur, ce soit enlevé du cache local dans le browser... sinon, avec tout le code CSS et Javascript derrière, ben *paf* marche paaaaaaaaaaas cotre truc !!  Et évidemment c'est aussi soumis au sens du vent/version!)

Source:

Haut de page