Qu’est-ce que la mise en cache de données? Faut-il vider mon cache?

débutant

Qu’est-ce que la mise en cache de données? Faut-il vider mon cache?

Olivier
10 min read

La mise en cache de données est une stratégie utilisée par la plupart des sites web et applications pour offrir une expérience plus fluide. C’est pour cette raison que les hébergements web d’Ex2 incluent des solutions avancées de mise en cache, telles que Litespeed et Redis.

De nombreux internautes et propriétaires de sites web comprennent toutefois assez mal le fonctionnement d’un cache. C’est pourquoi nous avons cru bon vous proposer cet article détaillé.

Les données mises en cache sont un ensemble de fichiers temporaires que votre navigateur, vos applications et votre système d’exploitation gardent à portée de main. Ils peuvent ainsi recharger ces pages et ces fichiers plus rapidement la prochaine fois que vous les ouvrez.

Les caches doivent parfois être purgé pour des raisons spécifiques. Par exemple, un rendu obsolète d’un contenu ou un appareil à court de stockage sont des raisons courantes de supprimer ces données. Il n’est donc pas nécessaire de planifier des ménages réguliers.

Dans cet article, nous aborderons en détails la mise en cache de données. Nous verrons d’abord comment cela fonctionne et les différents types de caches que l’on rencontre couramment. Il sera ensuite question de la purge de ces différents. Nous aborderons alors les contextes où il est approprié de vider un cache et comment procéder pour le faire.

Une brève introduction à la mise en cache de données

Une brève introduction à la mise en cache de données

Lorsque vous chargez une page, votre navigateur télécharge une longue liste de fichiers. Celle-ci inclut le code HTML de la page elle-même, les feuilles de style CSS qui la mettent en forme, les ensembles JavaScript qui gèrent l’interactivité, les images, les polices et parfois des fragments de réponses d’API. L’envoi et l’analyse de tout cela prend donc du temps et de la bande passante.

Le cache existe spécifiquement afin de permettre que le navigateur n’ait pas besoin de répéter ce travail à chaque visite. Lors des visites suivantes, il extrait simplement une copie du disque plutôt que de charger les données depuis le serveur. La page est donc affichée en une fraction du temps.

Ce schéma se répète sur presque toutes les couches de la pile réseau. Votre téléphone met en cache les écrans récents de vos applications. Votre système d’exploitation, pour sa part, met en cache les références DNS. Cela lui évite de demander deux fois au résolveur le même domaine en quelques minutes.

Votre routeur domestique contient des enregistrements DNS. Son cache est utilisé par les appareils de votre réseau. Votre fournisseur d’accès Internet exécute aussi son propre cache DNS. C’est sans compter les réseaux de livraison de contenu placent des copies périphériques de fichiers populaires dans des centres de données du monde entier.

Même les applications Web progressives exécutent un cache local via un « service worker« . C’est ce qui permet à certaines applications Web de continuer à fonctionner quand vous êtes hors ligne.

Le résultat final est un système en couches où le même octet peut exister à cinq endroits à la fois. Chaque couche est optionnelle et peut être retirée individuellement. La plupart des interagissent donc qu’avec quelques unes d’entre elles.

Emplacements des divers caches de données dans la pile

Le tableau ci-dessous présente les types de cache les plus courants qu’un utilisateur régulier rencontrera. Nous vous présentons aussi où ils se trouvent ainsi que comment les supprimer.

TypeL’endroit où le cache existeSurvit à un redémarrage de navigateurTaille typique du cacheComment le supprimer?
Cache du navigateurDisque, associé au profil du navigateurOuiTaille variant de 50 Mo à quelques centaines de MoParamètres du navigateur, « images et fichiers mis en cache »
Cache DNS (OS)Mémoire du système d’exploitationNon lors du redémarrage de l’appareil, mais « oui » lors du redémarrage du navigateurQuelques Koipconfig /flushdns (pour Windows), dscacheutil (pour macOS)
Cache d’application mobileStockage par application sur l’appareilOuiDe quelques Mo à plus de 1 Go dans plusieurs applicationsParamètres > Applications > Stockage et cache (Android)
Cache de périphérie CDNCentre de données du fournisseurOuiNe vous affecte pas en tant que visiteurNe peut pas être supprimé de votre côté
Cache d’outil de service (service worker)Navigateur, distinct du cache habituelOuidéfinis par l’applicationParamètres du navigateur ou option de réinitialisation de l’application
Fichier OS/cache de miniaturesDans les dossiers utilisateurOui Varie de dizaines de Mo à plusieurs GoParamètres de stockage ou utilitaires de maintenance

La première rangée de ce tableau vous indique à quel endroit trouver un cache, si vous souhaitez le vider. Par exemple, le cache du navigateur peut contenir une feuille de style obsolète qui casse une présentation de page. C’est alors ce cache précis, accessible via votre navigateur, que vous devez vider.

Devrait-on supprimer les données mises en cache?

Devrait-on supprimer les données mises en cache?

La suppression des données mises en cache est une solution ciblée et ponctuelle. Ça ne devrait donc pas être perçu comme une mesure de routine. De nombreux utilisateurs le font sans raison. Ils rendent alors leur propre navigation un peu plus lente pour le reste de la journée, sans en tirer le moindre bénéfice. Il existe toutefois des situations où une purge de cache peut être rentable.

Quelques exemple de cas où purger un cache peut être bénéfique

  • Un site peut ne pas s’afficher correctement après une refonte. Les présentations peuvent alors se chevaucher, des images peuvent être manquantes, des boutons peuvent se trouver placés au mauvais endroit. Cela signifie que les anciens fichiers CSS ou JavaScript sont toujours servis à partir du cache.
  • Un formulaire de connexion continue de faire une boucle de chargement ou d’échouer dans le même navigateur. Cela peut être dû au fait que les scripts mis en cache ne sont synchronisés avec la version active.
  • Vous pouvez déboguez divers problème de présentations ou de contenu en éliminant les copies locales obsolètes.
  • Votre appareil manque d’espace de stockage. Les caches d’applications peuvent dépasser 1 Go chacun, ce qui peut rapidement saturer des appareils plus limités.
  • Vous utilisez une machine partagée ou publique. Effacer vos données mises en cache réduit les chances qu’un autre utilisateur puisse reconstruire votre activité. Si vous souhaitez éviter que vos actions soient retraçables, c’est une mesure de base.
  • Vous êtes sur le point de vendre, offrir en cadeau ou recycler un appareil. Une réinitialisation d’usine est alors une bonne idée. La suppression des caches d’applications et de navigateurs avant cela peut aussi s’avérer très judicieux.
  • Vous soupçonnez un malware ou un hameçonnage. Réinitialiser vos pages en cache et les données stockées limite alors l’exposition. Vous évitez ainsi de charger des ressources contaminées lors de vos prochaines visites.

Si aucune de ces options ne s’applique, vous pouvez laisser les caches tranquilles. L’avantage de performance qu’ils vous procurent lors de chaque visite est bien réel. Si vous les purger régulièrement, vous vous privez de ce bénéfice.

Les en-têtes de cache et la question de fraîcheur

La durée de mise en cache d’un fichier est déterminée par le serveur, pas par le navigateur. C’est l’en-tête HTTP Cache-Control qui contient les règles. Il détermine ainsi une durée de vie calculée en secondes.

Une réponse indiquant Cache-Control : max-age=3600 est donc traitée comme fraîche pendant une heure. Après cela, le navigateur validera à nouveau les données avant de les réutiliser.

D’autres directives courantes incluent no-cache, qui force la revalidation à chaque utilisation, et no-store, qui indique au navigateur de ne pas en conserver de copie. Celles-ci ont toutefois souvent des usages très précis.

Par exemple, les pages avec des formulaires de connexion ou des interfaces bancaires doivent être servies sans stockage afin qu’elles ne restent jamais sur le disque. Utiliser un cache pourrait alors représenter un risque de sécurité.

Les ETag représentent la deuxième moitié du système. Un ETag est une empreinte digitale courte qui identifie la version exacte d’un fichier. Lorsque le navigateur se reconnecte, il envoie l’ETag stocké dans un en-tête If-None-Match.

Si l’ETag actuel du serveur correspond toujours, la réponse est alors 304 Not Modified. Le navigateur continue donc d’utiliser sa copie locale sans retélécharger le corps. Une image de 2 Mo peut ainsi être revalidée avec seulement quelques centaines d’octets de trafic réseau.

Les outils de service (service worker) gèrent leur propre couche de cache. Ils se placent entre la page et le réseau et décident de ce qu’ils font avec chaque requête. Ces outils utilisent alors diverses stratégies comme cache-first pour utiliser d’abord la copie locale. Ils peuvent aussi opter pour network-first afin d’essayer d’abord le serveur ou stale-while-revalidate pur servir la copie locale et rafraîchir en arrière-plan.

Ce mécanisme permet à une application web progressive de se charger sur une connexion Wi-Fi instable ou encore en mode hors ligne.

Quelles données sont supprimées quand vous videz un cache?

Quelles données sont supprimées quand vous videz un cache?

La suppression des données mises en cache est plus limitée que ce que croit la plupart des gens. Le cache lui-même contient uniquement des ressources de page réutilisables. Cela signifie que les mots de passe enregistrés, les favoris, l’historique de navigation et les cookies sont tous stockés séparément.

Pour la plupart des applications, vous devez cocher diverses cases supplémentaires dans les options de suppression, sinon elles restent intactes. Les cookies sont sans aucun doute l’élément que les gens suppriment le plus souvent à leur détriment. Ils se trouvent alors déconnectés de tous les sites et applications auxquels ils étaient connectés.

Le gestionnaire de mots de passe du navigateur survit à une purge du cache. Vous pouvez toutefois choisir de supprimer également les données de connexion.

Attendez-vous à un léger ralentissement la première fois que vous visitez un site après avoir vider un cache. Le navigateur doit alors télécharger de nouveau l’ensemble des images, des scripts et des feuilles de style. À votre deuxième ou troisième visite, votre cache sera reconstruit et les temps de chargement reviendront à la normale.

Pour conclure sur la mise en cache de données

Même si vous y portez peu d’attention, vous utilisez sans aucun doute la mise en cache de données au quotidien. Elle vous permet entre autre de naviguer plus rapidement sur internet et de bénéficier d’applications plus fluides.

La mise en cache vous offre donc des avantages très concrets, même si elle agit en arrière-plan et reste méconnue. Il vous faut donc éviter de vider vos caches trop régulièrement et sans bonne raison. Vous ne faites alors que vous priver des bénéfices de cette stratégie et vous imposer des temps de chargement plus lents.

Nous espérons que cet article vous a plus et vous en a appris davantage sur la mise en cache de données. Si c’est le cas, nous vous invitons à consulter nos autres autres articles et tutoriels.

N’hésitez pas non plus à consulter notre base de connaissance. Vous y trouverez une foule d’articles détaillés pouvant répondre à toutes vos questions web.


Olivier

Olivier est un blogueur et développeur web expérimenté. Il créé et gère des sites WordPress depuis plus de 12 ans, et possède plus d'une décennie d'expérience en tant que rédacteur web.