STATUS IS UPWIKI D'OPTIMISATION DE SITE
20Accélérer
Performance et livraison / Accélérer

Guide de mise en cache navigateur pour propriétaires de sites

Définissez des règles HTTP claires afin que les visites répétées évitent des téléchargements inutiles sans enfermer les visiteurs sur des pages obsolètes ou du contenu personnalisé non sécurisé.

Guide de mise en cache navigateur pour propriétaires de sites — GUIDE VISUEL
LIRE
7 minutes
SOURCES
6
RÉVALIDER
2027-03-27
examiné
Relecteur performance Web et ingénierie des releases
LA RÉPONSE COURTE

Commencez par la décision.

Attribuez une règle de cache distincte pour chaque type d’URL. Donnez aux fichiers dont le contenu ne change jamais à cette URL — par exemple les JavaScript, CSS, polices et images nommés avec un hash — une durée de fraîcheur longue. Donnez au HTML et aux autres réponses non versionnées une politique qui force la validation avant réutilisation quand la fraîcheur est importante. Publiez une nouvelle URL d’actif chaque fois qu’un actif change : une longue durée de cache ne peut pas être annulée de manière fiable pour les copies encore fraîches.

Commencez par des en-têtes Cache-Control explicites, puis vérifiez les en-têtes et le comportement du navigateur dans un environnement de préproduction. Associez des réponses favorisant la validation avec ETag et, quand disponible, Last-Modified. Traitez séparément les réponses personnalisées, de compte, de paiement et sensibles des pages publiques. SIU utilise ce travail comme optimisation proactive de l’uptime : il réduit le travail inutile sur l’origine et prévient les défauts liés au cache avant qu’ils n’affectent un site exploitable.

GUIDE VISUEL

Voyez le travail comme un système.

Utilisez cette carte pour relier les décisions de l'article avant d'agir sur des tactiques isolées.

SIUAccélérer
01Cartographier la politique sur la ressource, pas sur le serveur
02Utiliser précisément les termes Cache-Control
03Versionner les actifs immuables avant d’attribuer une longue durée
04Rendre le HTML à jour par la validation, pas par un cache long
01

Cartographier la politique sur la ressource, pas sur le serveur

Inventoriez des URLs représentatives avant de changer les en-têtes : une page d’accueil, une page de contenu, une coque d’application, CSS, JavaScript, images, polices, API, connexion, compte, paiement et téléchargements. Pour chacune, notez si la réponse est publique ou personnalisée, si son URL change quand ses octets changent, et à quelle vitesse une correction doit atteindre les visiteurs.

Élaborez une matrice de politiques à partir de cet inventaire. Un actif public adressé par son contenu nécessite une règle différente du HTML à adresse stable. Les réponses sans Cache-Control peuvent encore être mises en cache de manière heuristique, donc des règles explicites sont plus faciles à tester.

Durée de fraîcheur

La période pendant laquelle une réponse stockée peut être réutilisée ; max-age la donne en secondes.

02

Utiliser précisément les termes Cache-Control

Cache-Control indique aux navigateurs et aux caches partagés comment stocker et réutiliser une réponse. max-age=N permet la réutilisation tant que la ressource est fraîche. s-maxage=N définit la fraîcheur pour les caches partagés et remplace max-age là-bas, mais les navigateurs ignorent s-maxage. public permet à tout cache de stocker ; private autorise le cache navigateur mais empêche le stockage partagé.

no-cache autorise le stockage mais exige la validation auprès de l’origine avant réutilisation. no-store signifie que les caches ne doivent pas stocker la réponse, mais ce n’est pas un contrôle de confidentialité complet. Utilisez must-revalidate lorsque servir du contenu périmé après expiration est inacceptable ; une origine indisponible peut alors retourner un 504 plutôt qu’un contenu périmé.

Éviter le no-store généralisé

Il supprime le stockage plutôt que d’exiger simplement une vérification ; réservez-le aux réponses qui ne doivent vraiment pas être conservées.

03

Versionner les actifs immuables avant d’attribuer une longue durée

Une URL d’actif versionnée inclut une empreinte de contenu ou un numéro de version de release, par exemple app.4f2c.js. Quand les octets d’un actif changent, publiez une URL différente et mettez à jour la référence dans le HTML. Le cache voit une nouvelle ressource, donc les visiteurs récupèrent le nouvel actif sans qu’une invalidation doive atteindre chaque navigateur.

Pour une représentation qui ne changera pas pendant sa durée de fraîcheur, Cache-Control: max-age=31536000, immutable est un schéma pratique. immutable indique aux clients compatibles de ne pas revalider conditionnellement tant que la ressource est fraîche. Ne l’appliquez pas, ni un max-age d’un an, à un fichier mutable accessible sous la même URL. Conservez les anciens actifs fingerprintés tant que du HTML mis en cache peut encore les référencer.

Le HTML est le manifeste

Le HTML choisit les URLs des actifs, donc l’ordonnancement des releases doit conserver la génération référencée.

04

Rendre le HTML à jour par la validation, pas par un cache long

Le HTML a généralement une URL stable, visible par les humains, et change avec le contenu, les références d’actifs, les feature flags ou les avis de sécurité. Un schéma public conservateur pour le HTML est Cache-Control: no-cache avec ETag et Last-Modified lorsque votre plateforme peut les produire correctement. Le navigateur stocke le corps mais effectue une requête conditionnelle avant de le réutiliser ; une réponse inchangée peut retourner 304 Not Modified sans corps.

ETag identifie une version de ressource. Sur une réponse périmée, le navigateur peut l’envoyer dans If-None-Match ; si elle correspond, le serveur répond 304, sinon il envoie la nouvelle représentation. Les recommandations RFC conseillent, quand c’est possible, d’avoir à la fois ETag et Last-Modified sur une réponse 200. no-cache ne garantit pas la validation sur la navigation Précédent ou Suivant car un navigateur peut restaurer un instantané de l’historique de session.

Qualité du validateur

Un ETag doit changer quand la représentation change ; testez-le entre origines et déploiements.

05

Séparer la diffusion publique des réponses personnalisées et sensibles

Un cache partagé, comme un CDN, peut réutiliser une réponse pour plusieurs utilisateurs. Ne le laissez pas réutiliser du HTML ou des données d’API spécifiques à un compte entre utilisateurs. Pour du contenu personnalisé susceptible d’être conservé dans le navigateur, private, no-cache est un point de départ sensé : cela empêche le stockage partagé et exige une validation. Un en-tête Set-Cookie seul n’empêche pas la mise en cache.

Pour les réponses qui ne doivent pas être stockées, utilisez no-store et passez en revue le code applicatif, les règles CDN, les service workers, les stockages côté navigateur, les logs et les pages d’erreur. Les en-têtes seuls ne constituent pas un programme de confidentialité, conformité ou sécurité des paiements. Faites examiner les flux sensibles par des spécialistes sécurité, confidentialité et paiements qualifiés selon les exigences applicables.

Changements d’autorisation

Testez la connexion, la déconnexion, le changement de compte et les modifications de permissions avec des caches navigateur et CDN chauds.

06

Déployer les changements de cache comme une release réversible

Capturez les en-têtes de base et le comportement des corps pour les requêtes non mises en cache et répétées. En préproduction, déployez d’abord les actifs versionnés, puis le HTML qui les référence, et testez le HTML mis en cache plus ancien contre la nouvelle origine. Vérifiez les chemins direct-origin et CDN si les deux existent. Les en-têtes Network de DevTools doivent montrer la politique voulue et le comportement en répétition.

Conservez un manifeste de release des URLs d’actifs, des règles d’en-tête et de la version de configuration. Si une release combine des fichiers clients incompatibles, restaurez un HTML compatible et le comportement applicatif, mais n’écrasez pas un fichier fingerprinté déjà publié. Repointiez le HTML vers la génération connue comme saine et conservez les deux générations tant que le HTML mis en cache peut les demander. Une purge de cache partagé ne peut pas forcer les navigateurs à jeter une réponse encore fraîche.

Remédiation proactive

Transformez les échecs de test d’en-tête, les 404 d’actifs et les incompatibilités de version en éléments à ajouter à la checklist de la release suivante.

ACTION / VÉRIFIER

Votre guide pratique des actions à mener.

  1. 01

    Inventorier les classes de réponses

    Classifiez des URLs d’exemple comme publiques ou personnalisées, mutables ou versionnées.

    VÉRIFIER: Inclut HTML, actifs, API, authentification, compte, paiement et erreurs.
  2. 02

    Capturer les en-têtes actuels

    Enregistrez Cache-Control, ETag, Last-Modified, Age, Vary et le statut à l’origine et au CDN.

    VÉRIFIER: Un instantané pré-changement existe pour chaque échantillon.
  3. 03

    Fingerprint des actifs mutables

    Faites en sorte que la build publie une nouvelle URL d’actif quand ses octets changent.

    VÉRIFIER: Un actif modifié produit une URL modifiée et une référence HTML modifiée.
  4. 04

    Définir des politiques explicites

    N’utilisez des règles à longue durée que pour des URLs versionnées immuables ; utilisez des règles favorisant la validation pour les URLs stables.

    VÉRIFIER: Les tests d’en-têtes correspondent à la politique prévue.
  5. 05

    Tester la validation

    Vérifiez qu’un document inchangé retourne 304 après une requête conditionnelle et qu’un document modifié retourne 200 avec un nouvel ETag.

    VÉRIFIER: Les traces en préproduction montrent les deux chemins.
  6. 06

    Exercer les limites de confidentialité

    Testez deux comptes, la déconnexion, les changements de rôle et les routes sensibles avec des caches chauds.

    VÉRIFIER: Aucune réponse personnalisée ne franchit les utilisateurs.
  7. 07

    Prouver la compatibilité de la release

    Chargez du HTML antérieur mis en cache après la release suivante.

    VÉRIFIER: Le HTML antérieur et actuel chargent leurs actifs référencés sans 404 ni erreurs de script.
  8. 08

    Documenter le rollback

    Enregistrez la génération saine, la version d’en-têtes, le propriétaire et la période de rétention des anciens actifs.

    VÉRIFIER: Un exercice non production restaure la génération connue saine sans éditer une URL immuable.
SUJETS DE DISCUSSION

Comparez les compromis, pas les données privées.

Utilisez ces propositions avec votre équipe ou la communauté de propriétaires de sites. Partagez des méthodes et des enseignements, mais ne collez jamais d'identifiants, d'enregistrements clients ou de détails d'infrastructure non publics.

  1. 01

    Quelles classes d’URL de votre site sont les plus difficiles à classer comme publiques, personnalisées, immuables ou fréquemment changeantes, et comment documentez-vous la décision ?

  2. 02

    Quel test d’ordonnancement de release a été le plus utile pour détecter un décalage entre un ancien HTML et un nouvel actif avant qu’un visiteur ne le rencontre ?

  3. 03

    Où se chevauchent vos règles CDN, applicatives et de cache navigateur, et qui est responsable de vérifier que leur comportement combiné correspond à la politique voulue ?

RESSOURCES POPULAIRES / DE RÉFÉRENCE

Consultez le matériel source.

IETFRFC 9111: HTTP Caching ↗

Explique la fraîcheur, la validation, les directives de cache, l’invalidation et les limites pour les informations sensibles.

Examiné le 2026-09-27
IETFRFC 8246: HTTP Immutable Responses ↗

Définit la mise en cache immutable, son périmètre et les considérations de corruption.

Examiné le 2026-09-27
MDN Web DocsHTTP caching ↗

Conseils pratiques sur les validateurs, les 304, la personnalisation et le cache-busting.

Examiné le 2026-09-27
MDN Web DocsCache-Control header ↗

Référence pour max-age, s-maxage, no-cache, no-store, private, public et must-revalidate.

Examiné le 2026-09-27
MDN Web DocsETag header ↗

Explique les entity tags, If-None-Match et la validation 304.

Examiné le 2026-09-27
web.devPrevent unnecessary network requests with the HTTP Cache ↗

Conseils pratiques sur les URLs versionnées, les validateurs, les politiques et le déploiement.

Examiné le 2026-09-27

Politique des sources. Cet article utilise des standards RFC et de la documentation technique propriétaire. Il évite les affirmations de performance non étayées et sépare les règles HTTP de la configuration spécifique à une plateforme.

CLARIFICATIONS RAPIDES

Questions fréquentes.

Est-ce que no-cache signifie que le navigateur ne peut pas stocker la page ?

Non. no-cache autorise le stockage mais exige une validation réussie auprès de l’origine avant réutilisation. Utilisez no-store uniquement lorsque la réponse ne doit pas être conservée, tout en reconnaissant que no-store seul n’est pas une garantie complète de confidentialité.

Chaque fichier statique doit-il recevoir une durée de cache d’un an ?

Non. Un max-age d’un an est approprié uniquement lorsque les octets de l’URL ne changeront pas pendant cette période, généralement parce que l’URL est fingerprintée ou versionnée. Les fichiers mutables sous la même URL nécessitent une politique plus courte ou favorisant la validation.

Une purge CDN peut-elle corriger une erreur de cache côté navigateur ?

Elle peut supprimer une copie dans un cache partagé géré, mais elle ne peut pas forcer chaque navigateur à jeter une réponse encore fraîche. Publiez une nouvelle URL d’actif versionnée et mettez à jour les références HTML ; utilisez ensuite le plan de rollback pour restaurer une génération compatible si nécessaire.

Status Is UP Editorial Team · Rédacteurs Uptime Enablement

Examiné par Relecteur performance Web et ingénierie des releases. Publié 2026-09-27; mis à jour 2026-09-30.