Tech & Web

Mise en Cache : Définition, Types et Configuration

Comment fonctionne la mise en cache web ?

Lorsqu'un utilisateur visite une page web, son navigateur télécharge de nombreuses ressources : fichiers HTML, feuilles de style CSS, scripts JavaScript, images, polices. Sans cache, chaque visite déclenche un nouveau téléchargement complet de toutes ces ressources depuis le serveur d'origine.

La mise en cache crée des copies locales ou intermédiaires de ces ressources. Lors des visites suivantes, le navigateur (ou le serveur intermédiaire) sert la copie stockée au lieu de re-télécharger la ressource, réduisant drastiquement la latence et la consommation de bande passante.

Le comportement du cache est contrôlé par des en-têtes HTTP envoyés par le serveur, principalement Cache-Control, ETag et Last-Modified.

Les 3 types de cache web

Cache Navigateur

  • Stocké sur l'appareil de l'utilisateur
  • Bénéfice pour un seul utilisateur
  • Contrôlé par Cache-Control et ETag
  • Élimine les requêtes réseau
  • Idéal pour les fichiers statiques

Cache Serveur

  • Stocké sur le serveur (Redis, Memcached, Varnish)
  • Bénéfice pour tous les visiteurs
  • Réduit la charge sur la base de données
  • Accélère la génération des pages dynamiques
  • Idéal pour le contenu dynamique fréquent

Cache CDN

  • Stocké sur des serveurs distribués géographiquement
  • Bénéfice pour tous, réduit la latence réseau
  • Protège le serveur d'origine (absorbe le trafic)
  • Sert les ressources depuis le point le plus proche
  • Idéal pour les audiences internationales

Les en-têtes HTTP de cache essentiels

La configuration du cache repose sur des en-têtes HTTP que votre serveur envoie avec chaque réponse. Voici les plus importants :

En-têteRôleExemple
Cache-ControlDirective principale de contrôle du cachemax-age=31536000, immutable
ETagIdentifiant unique de la version du fichier"33a64df5"
Last-ModifiedDate de dernière modification du fichierThu, 01 Jan 2026 00:00:00 GMT
VaryIndique les critères de variation du cacheAccept-Encoding, Accept

Stratégies de cache recommandées par type de ressource

Chaque type de ressource nécessite une stratégie de cache adaptée. Voici les recommandations pour une configuration optimale :

  • Fichiers statiques versionnés (CSS, JS, images)Cache-Control: max-age=31536000, immutable. Cache d'un an, car le hash dans le nom du fichier change à chaque modification (ex: app.a1b2c3.js).
  • Pages HTMLCache-Control: no-cache ou max-age=0, must-revalidate. Le navigateur vérifie toujours auprès du serveur si une version plus récente existe.
  • Polices webCache-Control: max-age=31536000. Les polices changent rarement et sont lourdes à télécharger.
  • API dynamiquesCache-Control: no-store pour les données personnalisées, ou max-age=60, stale-while-revalidate=300 pour les données publiques.

7 bonnes pratiques pour optimiser votre mise en cache

  1. Utilisez le cache busting par hash — Ajoutez un hash au nom de vos fichiers statiques (style.a3f2b1.css) pour invalider le cache à chaque modification sans changer la durée de cache.
  2. Configurez des durées de cache longues pour les assets statiques — Utilisez max-age=31536000 (1 an) avec immutable pour les fichiers versionnés.
  3. Ne cachez jamais les pages HTML en dur — Utilisez no-cache ou stale-while-revalidate pour que les mises à jour de contenu soient visibles rapidement.
  4. Déployez un CDN — Cloudflare, Fastly ou AWS CloudFront distribuent vos ressources depuis des serveurs proches de vos utilisateurs.
  5. Implémentez un Service Worker — Pour les PWA, un Service Worker offre un contrôle total sur le cache et permet un fonctionnement hors ligne.
  6. Utilisez stale-while-revalidate — Cette directive sert le contenu en cache immédiatement tout en vérifiant en arrière-plan si une version plus récente existe.
  7. Auditez régulièrement vos en-têtes — Vérifiez avec les DevTools (onglet Network) ou des outils comme curl -I que vos en-têtes de cache sont correctement configurés.

Votre mise en cache est-elle bien configurée ?

Testez gratuitement votre site pour vérifier vos en-têtes de cache et identifier les ressources qui pourraient bénéficier d'un cache plus agressif.

Tester mon site →