Le cache pour les Nuls
tadanobu 29/12/2021 09:05:39
Il y a régulièrement des gens qui rencontrent des problèmes avec les galeries et très souvent cela provient du cache. Mais je crois que son fonctionnement n'est pas très clair pour tout le monde alors voilà un petit pavé d'explications sur tout cela.

1. Qu'est-ce que le cache ?
Toutes les informations qui existent sur internet sont stockées dans des serveurs. A chaque page chargée, on demande au serveur de nous envoyer le contenu (texte, image, vidéo etc...). Le cache permet de stocker localement une copie.
Prenons l'exemple du logo d'un site. Il changera peut-être une fois tous les 5 ou 10 ans. Si vous consultez 50 pages par jour sur ce site, redemander au serveur le même logo des milliers de fois n'est pas optimal. Autant conserver une copie dans le cache. Ainsi, vous pouvez charger immédiatement la version stockée localement, plutôt que de surcharger inutilement le serveur.

2. Où est stocké le cache ?
C'est ici que la confusion commence, car il y a deux grands types de cache.
Le premier cache est stocké dans la mémoire des appareils (ordi, smartphone...). Cela dit, chaque navigateur a son propre cache. Vous avez un cache pour Chrome, un autre cache pour Firefox et ainsi de suite.
Le deuxième cache est stocké dans un CDN. C'est un serveur intermédiaire qui a pour objectif d'améliorer les performances en soulageant le serveur d'origine et en offrant un circuit d'accès plus court. Plutôt que d'avoir un gros serveur qui fait tout, on a un serveur principal assisté de nombreux CDN.

3. Dois-je vider mon cache ? Comment ?
Concernant votre cache local, de manière générale, il est déconseillé de vider son cache. Le cache est un moyen d'optimiser le fonctionnement d'internet, autant s'en servir. Le vider une fois de temps en temps peut être utile, car conserver des informations d'un site visité une seule fois il y a 10 ans n'a pas d'intérêt. Mais vider son cache trop souvent serait contre-performant. Ne videz pas votre cache pour régler un problème de galerie. Les utilisateurs avancés peuvent décider de supprimer uniquement le cache de fichiers spécifiques.
Concernant le cache du CDN, seul un administrateur du réseau peut le vider, vous ne pouvez donc rien faire. On pourrait imaginer utiliser un VPN pour accéder aux données depuis un autre CDN, mais c'est relativement compliqué et n'offre aucune garantie de réussite.

4. Que faire en cas de problème avec une galerie ? Pourquoi ces problèmes apparaissent ?
Si vous ajoutez une nouvelle galerie, à son premier chargement les images passent par le CDN et le cache local, et seule cette première version sera distribuée à tous les autres membres. Si vous supprimez immédiatement cette galerie pour la modifier, la première version reste en mémoire.
Supprimer pour ajouter la même chose est toujours inutile. A chaque upload, les fichiers sont bien envoyés sur le serveur, donc pas besoin de supprimer du contenu frais en espérant corriger un problème. Le problème se situe au niveau du cache.

Pour contourner le cache local, passez en mode navigation privée. Ce mode n'utilise pas le cache. C'est plus simple et plus efficace que de changer de navigateur ou d'appareil, ou vider son cache. Cela permet de voir si le problème vient de votre cache local ou non.
Pour contourner le cache réseau, il faut ruser. Comme expliqué précédemment, seul un administrateur pour intervenir sur le cache réseau. Il faut donc trouver un autre moyen de modifier les fichiers. Pour cela, il faut changer le nom des images, car le cache accède à un fichier par son nom.

Chaque image ajoutée sur le site porte un numéro unique d'identification. Par exemple, cette image pour le numéro 227432, comme on le voit dans l'URL du navigateur. Le numéro d'une image est attribué par incrémentation automatique. Autrement dit, on ajoute simplement 1 au nom de chaque nouvelle image. Imaginons que vous ajoutez les images 1001, 1002 et 1003. Ces noms vont être stockés dans les différents caches. Si vous supprimez ces images pour les rajouter, elles vont recevoir les mêmes noms et former une boucle qui va toujours charger le même contenu d'origine.
Ajoutez une nouvelle image à une autre galerie. Si vous constatez un problème, commencez par ajouter une image à une galerie vide. Vous créerez ainsi l'image 1004. Une seule image suffit, mais vous pouvez très bien en ajouter 9. Revenez ensuite à la galerie problématique pour supprimer les images 1001, 1002 et 1003. En vidant cette galerie et la remplissant à nouveau, les numéros deviendront 1005, 1006 et 1007, et vous créerez ainsi du nouveau contenu dans tous les caches, contournant toutes les précédentes versions.

tldr
Quand un membre crée une galerie et la supprime/modifie rapidement après, la première version reste en mémoire sur le réseau. Attendre la création d'une nouvelle galerie avant de refaire la précédente évite ce problème. Sinon, attendez l'intervention d'un admin pour corriger manuellement les problèmes.
Retour - Suivre