Stratégies de Cache
Le cache est l'arme absolue. À vous de définir la bonne stratégie pour chaque ressource.
Le Quiz Cache-Control
Pour chaque ressource ci-dessous, quel header Cache-Control choisiriez-vous ?
Cas 1 : Le Logo du site (logo-v1.png)
Cette image ne change jamais. Si on la modifie, on change son nom (logo-v2.png).
- A)
no-store - B)
public, max-age=3600(1 heure) - C)
public, max-age=31536000, immutable(1 an)
✅ Voir la réponse
Réponse C : public, max-age=31536000, immutable
Comme le fichier est versionné (v1, v2...), on peut le cacher "à l'infini". C'est la stratégie la plus performante.
Cas 2 : La page "Dashboard" (/dashboard)
Cette page contient des données privées (factures, profil) propres à l'utilisateur connecté.
- A)
private, no-cache - B)
public, max-age=60 - C)
public, stale-while-revalidate=60
✅ Voir la réponse
Réponse A : private, no-cache (ou no-store selon la sensibilité).
- Private : Interdit aux CDN/Proxies partagés de stocker la page (sinon un autre utilisateur verrait vos factures !).
- No-cache : Force le navigateur à revérifier (revalidation) avec le serveur à chaque visite pour être sûr d'avoir les données à jour.
Cas 3 : La liste des articles (/blog)
Cette page est publique. On veut qu'elle soit rapide, mais si un nouvel article sort, on accepte qu'il apparaisse avec 1 minute de retard.
- A)
no-cache - B)
public, max-age=3600 - C)
public, max-age=60, stale-while-revalidate=600
✅ Voir la réponse
Réponse C : public, max-age=60, stale-while-revalidate=600
- max-age=60 : Le cache est frais pendant 1 minute.
- stale-while-revalidate=600 : Entre 1 min et 10 min, on sert la version "périmée" (immédiat) tout en rechargeant la nouvelle en arrière-plan. C'est le meilleur compromis UX/Performance.