← HTTP — sécurité avancée, 40 leçons de cours

Module 28 / 40 · 90 min

28. Cache-Control : no-cache, no-store et private

Lire les directives sans leur attribuer un sens intuitif erroné.

Lessons, exercises and questions in this path are in French. The interface follows the site language.

Your progress will appear here when JavaScript is active.

Progress and best score are stored only in this browser. No account is needed; clearing browser data removes them. Module times are estimates including exercises.

Comprendre le mécanisme

no-cache ne signifie pas une interdiction générale de stockage : la réutilisation demande une validation selon les règles applicables. no-store demande de ne pas stocker le message dans le périmètre prévu. private indique qu’une réponse n’est pas destinée à un cache partagé. Ces directives répondent à des questions différentes ; les combiner doit traduire un besoin, pas une liste de mots supposés sûrs.

Raisonner et vérifier

Une directive ne garantit pas l’effacement d’une copie antérieure ni le comportement de tout système externe qui aurait déjà enregistré les données. Réduisez les données sensibles et testez le navigateur ainsi que les intermédiaires sous votre contrôle. Pour une page personnelle, choisissez une politique explicite et vérifiez l’absence de cache applicatif transversal. Documentez les besoins de navigation arrière et de travail hors ligne.

No-cache

no-cache demande une validation avant réutilisation selon le contrat. Stockage et réutilisation sont des décisions distinctes. Le stockage peut exister, mais une validation est requise avant réutilisation selon la sémantique applicable. Ne traduisez pas cette directive par aucune copie conservée : ce serait la propriété d’une autre instruction.

Understand this common mistake

no-cache interdit tout stockage.

Stockage et réutilisation sont des décisions distinctes.

No-store

no-store demande de ne pas stocker le message concerné. Cette directive ne promet pas un effacement universel rétroactif. Cette directive demande de ne pas stocker le message concerné. Elle ne constitue pas un effacement rétroactif universel de toutes les copies, historiques ou captures déjà créées ailleurs.

Understand this common mistake

no-store efface toutes les copies antérieures et historiques.

Cette directive ne promet pas un effacement universel rétroactif.

Private

private interdit le stockage par un cache partagé selon sa sémantique. La restriction de stockage n’est pas une preuve d’identité. Un cache partagé ne doit pas stocker selon cette sémantique, tandis qu’un cache privé peut encore être concerné par les autres règles. Vérifiez la différence entre navigateur et CDN.

Understand this common mistake

private authentifie automatiquement le lecteur.

La restriction de stockage n’est pas une preuve d’identité.

Public

public peut permettre un cache partagé selon les autres règles. L’auteur doit choisir une politique adaptée aux données. Une réponse marquée public peut être admissible à un cache partagé selon les autres conditions. Révisez immédiatement ce choix s’il porte des données personnelles et recherchez les copies déjà exposées.

Understand this common mistake

public signifie que le contenu ne contient nécessairement aucun secret.

L’auteur doit choisir une politique adaptée aux données.

Max-age

max-age définit une durée de fraîcheur. Le cache et l’identité ont des cycles distincts. Cette durée règle la fraîcheur, pas la sensibilité de la donnée. Une réponse personnelle ne devient pas partageable simplement parce que son max-age est court et que son contenu paraît récent.

Understand this common mistake

max-age définit la durée de validité du compte utilisateur.

Le cache et l’identité ont des cycles distincts.

S-maxage

s-maxage vise les caches partagés selon son contrat. La directive n’a pas ce rôle d’authentification. Cette directive cible les caches partagés dans son contrat. Comparez son effet avec max-age et les autres directives avant de conclure à une durée identique côté navigateur et côté intermédiaire.

Understand this common mistake

s-maxage définit seulement le mot de passe du navigateur.

La directive n’a pas ce rôle d’authentification.

Personnalisation

Une politique doit être cohérente avec les données personnalisées. La durée ne supprime pas la frontière d’identité. Identifiez les données liées à une identité avant de sélectionner la politique. Ne laissez pas un middleware global ajouter public sur un compte utilisateur simplement parce que le reste du site est public.

Understand this common mistake

Une réponse privée devient partageable sans risque avec un TTL court.

La durée ne supprime pas la frontière d’identité.

Combinaison

Des directives doivent être interprétées ensemble. Les autres paramètres peuvent modifier les conditions. Interprétez les directives ensemble et selon le type de cache. Une vérification qui cherche seulement un mot dans le header peut manquer une combinaison contradictoire ou une directive plus spécifique.

Understand this common mistake

Lire un seul mot suffit à connaître toute politique de cache.

Les autres paramètres peuvent modifier les conditions.

Valeur déployée

Les champs réellement servis doivent être vérifiés. Le cache utilise le message reçu. Inspectez la réponse reçue après proxy et CDN. Une route peut être transformée par une règle d’hébergement ; le fichier de configuration de l’application ne suffit pas à prouver la politique servie.

Understand this common mistake

Une intention dans un commentaire impose la politique HTTP.

Le cache utilise le message reçu.

Autorisation

L’autorisation doit rester correcte indépendamment du cache. Le protocole de cache ne décide pas de la propriété métier. Même sans cache partagé, le serveur doit refuser un utilisateur tiers. La politique de stockage ne remplace pas la vérification du droit sur chaque ressource au moment de la demande.

Understand this common mistake

Cache-Control remplace les permissions sur l’objet.

Le protocole de cache ne décide pas de la propriété métier.

Atelier guidé : lire, expliquer et vérifier le code

Cache-Control: no-cache
ETag: "lab-v1"

La réponse associe no-cache et un ETag. Elle peut donc permettre un stockage suivi d’une validation avant réutilisation selon le contrat. Expliquez la différence avec no-store et private, puis observez un parcours de revalidation réel au lieu d’interpréter le nom de directive littéralement.

Un validateur de contenu n’est pas une identité. no-cache ne signifie pas no-store. Cette interdiction correspond à une autre directive. La politique ne promet pas une purge universelle rétroactive.

Travail pratique : Comparez un document de laboratoire servi avec no-cache puis no-store. Examinez validation réseau et présence éventuelle de stockage.

Critères de correction : Utilisez des données fictives et un cache contrôlé. Testez rechargement, retour de navigation et changement d’identité. Décrivez les observations sans promettre une suppression universelle de toutes les copies.

Worked example

Cache-Control: private, no-store

Cette politique convient à certains contenus personnels, mais son adéquation dépend du contrat de la page et des mécanismes qui la servent.

Practical exercise

Comparez un document de laboratoire servi avec no-cache puis no-store. Examinez validation réseau et présence éventuelle de stockage.

View a suggested solution

Utilisez des données fictives et un cache contrôlé. Testez rechargement, retour de navigation et changement d’identité. Décrivez les observations sans promettre une suppression universelle de toutes les copies.

Verification checklist

  • no-cache n’est pas no-store.
  • private n’est pas une authentification.
  • Pas de promesse d’effacement rétroactif.

Knowledge check

Related lesson: 28. Cache-Control : no-cache, no-store et private ↗
Quelle lecture de no-cache est correcte ?

Reference documentation ↗

Module validation

101 questions, local practice target of 75%. Suggested duration of 150 minutes, with no enforced deadline. Questions and choices are shuffled; corrections appear after submission. The quick lesson check and the final course exam remain separate exercises.

Start or resume the 101 questions →