Accélérer l'affichage
Servir une copie prête est presque toujours plus rapide que reconstruire la réponse, surtout sur une connexion mobile.
Un cache est un espace de stockage temporaire qui conserve le résultat d'une opération coûteuse pour le réutiliser au lieu de le recalculer. Sur le web, il évite de redemander au serveur une image, une page ou une donnée déjà obtenue, ce qui réduit à la fois le temps d'affichage et la charge des machines.
En une phrase
Un cache garde une copie de ce qui a déjà été calculé, pour ne pas avoir à le refaire.
À retenir
Fiche du terme
Le principe est ancien et vaut bien au-delà du web : quand une opération est lente ou coûteuse, on en garde le résultat sous la main. La deuxième demande n'a plus à payer le prix de la première. Ce qui varie d'un cache à l'autre, c'est l'endroit où la copie est rangée et la durée pendant laquelle on la considère fiable.
Sur un site, plusieurs caches se superposent. Le navigateur garde les images et fichiers déjà téléchargés. Un réseau de diffusion garde une copie des pages dans des serveurs proches du visiteur. Le serveur applicatif garde le résultat de calculs répétés. La base de données garde en mémoire les requêtes fréquentes.
La vraie difficulté n'est pas de mettre en cache : c'est l'invalidation. Combien de temps une copie reste-t-elle juste ? Que faire quand la donnée d'origine change ? Un prix modifié dans votre back-office mais servi depuis un cache pendant six heures, c'est un problème commercial, pas un détail technique.
Le système vérifie d'abord s'il possède déjà une copie valable de ce qui est demandé.
Elle est renvoyée immédiatement, sans recalcul ni appel à la base de données. C'est le cas rapide.
L'opération est exécutée normalement, puis son résultat est stocké pour les demandes suivantes.
La copie doit être invalidée, soit à l'expiration d'un délai fixé, soit explicitement au moment de la modification.
Votre page d'accueil affiche vos trois derniers articles. Sans cache, chaque visiteur déclenche une requête en base de données pour les retrouver — mille visiteurs, mille requêtes identiques. Avec un cache de cinq minutes, la première visite paie le calcul et les suivantes reçoivent la copie. La base passe de mille requêtes à douze par heure, et la page s'affiche plus vite pour tout le monde.
Servir une copie prête est presque toujours plus rapide que reconstruire la réponse, surtout sur une connexion mobile.
Moins de calculs et moins de requêtes en base signifient des machines plus petites pour le même trafic.
Lors d'une campagne ou d'un pic de trafic, le cache encaisse la charge que le serveur ne pourrait pas traiter.
Certains caches continuent de servir une copie même quand le service d'origine est momentanément indisponible.
C'est le levier de performance au meilleur rapport effort/résultat. Une mise en cache correcte fait souvent gagner plus de secondes qu'une refonte complète, pour une fraction du coût. Le revers est qu'un cache mal réglé affiche des prix, des stocks ou des horaires périmés — et cette erreur-là se voit côté client.
Parce qu'un cache sert encore l'ancienne version. Selon le niveau concerné, il faut attendre l'expiration du délai ou déclencher une invalidation explicite après la modification.
Non. Les pages personnalisées, les paniers et les données sensibles ne doivent pas l'être, ou seulement de façon privée au navigateur du visiteur. Un cache partagé qui contient des données personnelles est une fuite.
Cela dépend de la fréquence à laquelle la donnée change et du coût d'afficher une version périmée. Quelques minutes pour une liste d'articles, un an pour une image dont le nom change à chaque version.
Votre site est lent malgré un bon hébergement ? La mise en cache est souvent le premier levier à actionner, et le moins coûteux.
Faire mesurer vos performances