Concepts expliqués ~1 min de lecture

no-store et no-cache ne veulent pas dire la même chose

Votre réponse HTTP est “non cachée”, mais elle revient quand même d’un cache ? Souvent, le problème est de confondre no-store et no-cache.

Diagramme en deux colonnes comparant no-store et no-cache. La colonne no-store montre la séquence requête, réponse, ne pas stocker, refaire une requête. La colonne no-cache montre requête, stocker la réponse, revalider, puis servir si valide.
Le schéma montre que no-store empêche le stockage, alors que no-cache autorise le stockage mais ajoute une étape de revalidation avant réutilisation.

no-store et no-cache sont souvent pris pour des synonymes, alors qu’ils répondent à deux besoins différents.

Cache-Control: no-store indique qu’une réponse ne doit pas être stockée par un cache, qu’il soit côté navigateur ou intermédiaire. Cache-Control: no-cache n’interdit pas le stockage : il impose qu’une réponse stockée soit revalidée auprès du serveur avant d’être réutilisée.

Cette différence compte en production. Si une réponse contient des données sensibles, no-store évite qu’elle reste dans un cache. Si une réponse peut être conservée mais doit rester fraîche, no-cache permet au cache de garder une copie et de vérifier sa validité, souvent avec ETag ou Last-Modified.

Exemple simple : une réponse HTML de GET /profile. Avec no-cache, le navigateur peut la stocker puis la revalider avant affichage. Avec no-store, il ne doit pas la conserver du tout.

Dans le même esprit

À lire ensuite