Cache : définition et tous les domaines où la mise en cache est utilisée

Mention d'affiliation v3.1
Mention d'affiliation v3.2 (mobile)

Les domaines où le cache est utilisé, du matériel jusqu'au web, sont regroupés ici dans une seule arborescence, selon les classifications de Wikipédia, de MDN et de la documentation officielle de WordPress. Le processeur, le système d'exploitation, la base de données et le navigateur parlent tous de « cache » : vider le cache n'efface donc pas la même chose selon la couche concernée.

Le cache stocke temporairement les données souvent utilisées ou bientôt nécessaires dans un support plus rapide que l'original et, lorsque la même requête arrive, répond avec cette copie au lieu de l'original.

L'article Cache (computing) de Wikipédia en anglais distingue les caches matériels, comme les caches CPU et GPU, et les caches logiciels, comme les caches disque, web, DNS et de base de données. L'arborescence ci-dessous regroupe cette classification selon l'emplacement du cache, et les caches web suivent la distinction de MDN entre private cache et shared cache.

🗂️ Les domaines où le cache est utilisé
💻 Ⅰ. Appareils des utilisateurs
Cache du système d'exploitationCache disque · cache DNS
Cache du navigateurPrivate cache du cache HTTP
Cache des applications mobilesMiniatures · données de session
🖥️ Ⅱ. Serveur et applications
Cache de pageHTML terminé (WP Rocket · cache FastCGI)
OPcacheBytecode PHP
Cache d'objetsRedis · Memcached
Cache des frameworks webLaravel · Django
🌐 Ⅲ. Diffusion de contenu · réseau
CDNShared cache du cache HTTP
Cache proxyDirect · inverse (Varnish)
Cache réseauCache ARP · cache des résolveurs DNS
🗄️ Ⅳ. Base de données · stockage
Cache interne de la base de donnéesPool de mémoire tampon InnoDB · Shared Buffers
Cache de stockageContrôleur de disque · DRAM des SSD
⚙️ Ⅴ. Matériel
Cache CPUL1 · L2 · L3 · TLB
Cache GPUTextures · données de shaders
☁️ Ⅵ. Cloud · virtualisation
Cache des conteneursCouches Docker
Fonctions serverlessWarm Start
Cache de buildDépendances CI/CD · artefacts

Pour voir dans un simulateur l'ordre dans lequel le cache du navigateur, le CDN et le cache côté serveur traitent une requête WordPress, consultez l'article Cache de site web & cache côté serveur : comment fonctionne le cache WordPress qui y est consacré.

Ⅰ. Appareils des utilisateurs

  • ↳ Client-Side Cache

Le cache des appareils des utilisateurs, comme les ordinateurs personnels et les smartphones, se divise en cache du système d'exploitation (OS), cache du navigateur et cache des applications mobiles.

Cache du système d'exploitation (OS)Mémoire de l'appareil (RAM)
Ce qui est stockéDonnées lues sur le disque · domaines et adresses IP

Le cache disque (page cache) garde en mémoire les données lues sur le disque et est géré par le noyau du système d'exploitation. Le cache DNS stocke les domaines et les adresses IP récemment consultés.

Cache disqueCache DNS
Cache du navigateurStockage du navigateur
Ce qui est stockéHTML · CSS · JS · images · polices

Quand la même ressource est redemandée, le navigateur ne va pas jusqu'au serveur ou vérifie seulement si elle a changé. Avec un Service Worker (Cache API), une application web peut même s'ouvrir hors ligne à partir des ressources stockées.

private cacheService Worker
Cache des applications mobilesEspace de stockage de l'application
Ce qui est stockéMiniatures · une partie des contenus · état de connexion

Les applications qui gèrent de gros contenus stockent sur l'appareil les données reçues et les listes récemment consultées, pour ne pas télécharger deux fois les mêmes données.

YouTubeInstagram

Ⅱ. Cache des serveurs et des applications

  • ↳ Server-Side Cache

Le cache côté serveur intervient une fois la requête arrivée sur le serveur, pendant la génération de la page. La documentation officielle de WordPress le divise en extensions de cache (cache de page), cache d'objets et cache serveur (caches d'opcode comme OPcache).

Cache de pageDisque · mémoire du serveur
Ce qui est stockéPage HTML terminée

Pour une même requête de page, la copie stockée est envoyée sans exécuter PHP. Il existe des extensions de cache et des caches de serveur web.

WP RocketCache FastCGI de NginxLiteSpeed Cache
OPcacheMémoire du serveur
Ce qui est stockéBytecode PHP compilé

La compilation est sautée lorsque le même fichier est réexécuté. Intégré par défaut depuis PHP 5.5.

Cache d'opcode
Cache d'objetsMémoire du serveur
Ce qui est stockéRésultats de requêtes · informations de session

Stocke les données souvent utilisées dans un stockage en mémoire pour ne pas répéter les mêmes requêtes.

RedisMemcached
Cache des frameworks webApplication
Ce qui est stockéTemplates · routes · résultats de requêtes

Les frameworks web stockent les templates rendus et les résultats de requêtes dans leur propre cache.

LaravelDjango

Ⅲ. Cache de la diffusion de contenu / de l'infrastructure réseau

Le cache de l'infrastructure réseau répond avec une copie entre le visiteur et le serveur d'origine, ce qui réduit la distance physique et la charge du serveur d'origine. Dans la norme de cache HTTP, il correspond au shared cache, partagé par de nombreux visiteurs.

CDNServeurs edge
Ce qui est stockéFichiers statiques · pages

Diffuse le contenu depuis le serveur le plus proche du visiteur parmi des serveurs répartis dans le monde entier. Pour sa structure et ses avantages, voir l'article Qu'est-ce qu'un CDN ? Pourquoi l'utiliser et ses 5 avantages qui y est consacré.

CloudflareAkamaiFastlyQUIC.cloud
Cache proxyServeur proxy
Ce qui est stockéRéponses du serveur

Un proxy direct stocke les réponses du côté du client, comme dans un réseau d'entreprise, et un proxy inverse devant le serveur.

Varnish CacheNginx en proxy inverse
Cache réseauÉquipements réseau · résolveurs DNS
Ce qui est stockéCorrespondance IP–MAC · résultats de requêtes DNS

Les équipements réseau stockent dans le cache ARP, et les résolveurs DNS des opérateurs ou publics conservent les résultats pendant le TTL de l'enregistrement.

Cache ARPCache des résolveurs DNS

Ⅳ. Cache des bases de données et des systèmes de stockage

Comme les entrées-sorties disque sont lentes, les bases de données et les supports de stockage gardent en mémoire les données souvent lues.

Cache interne de la base de donnéesMémoire du serveur de base de données
Ce qui est stockéDonnées souvent lues · index

Garde en mémoire les données souvent lues et les index. Le cache de requêtes de MySQL a été supprimé dans la version 8.0 ; MariaDB l'a conservé, mais désactivé par défaut.

Pool de mémoire tampon InnoDBPostgreSQL Shared BuffersMongoDB WiredTiger
Cache de stockageMémoire intégrée au support de stockage
Ce qui est stockéDonnées récemment lues · écrites

La mémoire intégrée au contrôleur du disque dur et la DRAM du SSD stockent temporairement les données pour réduire la latence des entrées-sorties.

Cache du contrôleur de disqueSSD · NVMe DRAM

Ⅴ. Cache au niveau matériel

Les caches matériels sont des mémoires rapides intégrées au CPU et au GPU, qui traitent les données plus vite que la mémoire principale (RAM).

Cache CPUDans le processeur
Ce qui est stockéInstructions · données · traductions d'adresses

Le L1 est propre à chaque cœur et se divise en cache d'instructions et cache de données ; le L3 est partagé par tous les cœurs. L'unité de gestion de la mémoire (MMU) stocke dans le TLB les résultats de la traduction des adresses virtuelles en adresses physiques.

L1L2L3TLB
Cache GPUDans le processeur graphique
Ce qui est stockéTextures · instructions de shaders · résultats intermédiaires

Améliore l'efficacité de traitement du GPU dans les jeux, la 3D et les calculs d'apprentissage automatique.

Ⅵ. Cache des environnements cloud / de virtualisation

Dans les environnements cloud et de virtualisation, la réutilisation des images de conteneurs, des environnements d'exécution des fonctions et des artefacts de build réduit les temps de déploiement et d'exécution.

Cache des conteneursServeurs de build · registres
Ce qui est stockéCouches d'image

Une image Docker se compose de plusieurs couches ; les couches inchangées ne sont ni reconstruites ni retéléchargées.

Docker
Fonctions serverlessEnvironnement d'exécution cloud
Ce qui est stockéEnvironnement d'exécution

L'environnement d'exécution d'un appel terminé est conservé un certain temps puis réutilisé à l'appel suivant, ce qui réduit le temps d'initialisation (Cold Start) : c'est le Warm Start.

AWS LambdaGoogle Cloud Functions
Cache de buildStockage du cache CI
Ce qui est stockéBibliothèques de dépendances · résultats de compilation

Réduit le temps des builds répétés.

GitHub ActionsGitLab CI

🔢 FAQ & contenus recommandés

Non. Vider le cache du navigateur n'efface que les copies stockées sur l'appareil du visiteur. Le cache de page du serveur et les copies du CDN sont vidés par l'administrateur du site, depuis l'extension de cache ou l'écran de gestion du CDN.

Juste après le vidage, la première requête descend jusqu'à l'origine et répond plus lentement que d'habitude. Une fois que cette requête a recréé la copie, les suivantes retrouvent leur vitesse normale ; le [Préchargement] de WP Rocket recrée les copies à l'avance après le vidage.

Sous Windows, la taille des caches L1, L2 et L3 s'affiche en bas de l'écran [Performances] → [CPU] du Gestionnaire des tâches. Sous Linux, vous trouvez les mêmes valeurs dans le résultat de la commande [lscpu].

💾 Articles sur le cache 10 articles
🗂️ Cache
📋 Cache : définition et tous les domaines 📄 Cache de site web & cache côté serveur
📋 Guide de configuration WP Rocket 📝 Zend OPcache 📝 Installer Redis Cache
📝 Qu'est-ce qu'un CDN ? 📝 Varnish Cache
📋 Test de vitesse WP Rocket 📝 Exemples d'amélioration de la vitesse 📝 Extensions de cache et d'optimisation

ℹ️ Mention d'affiliation
Le contenu de ce site contient des liens d'affiliation. Lorsqu'un visiteur achète un produit ou un service via l'un de ces liens, le site perçoit une commission du vendeur. Le montant payé par l'acheteur(il baisse lors des promotions ↓), lui, n'augmente pas. Les prix, remises et stocks indiqués correspondent à la date de rédaction et peuvent différer ; vérifiez-les donc auprès du vendeur avant d'acheter. Les produits sont choisis et évalués selon nos propres critères, et les commissions n'influencent ni l'ordre de présentation ni le contenu des évaluations.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Prouvez que vous êtes humain : 3   +   5   =