Cache-Control • Définition

Cache-Contrôle : Max-Age

La directive sur les demandes d’âge maximal définit, en secondes, le temps nécessaire à l’expiration d’une copie en cache d’une ressource. Après expiration, un navigateur doit rafraîchir sa version de la ressource en envoyant une nouvelle requête à un serveur.

Par exemple, le contrôle de la mémoire cache : max-age=120 signifie que la ressource retournée est valable pendant 120 secondes, après quoi le navigateur doit demander une version plus récente.

Cache-Control : No-Cache

La directive « pas de mise en cache » signifie qu’un navigateur peut mettre une réponse en cache, mais doit d’abord soumettre une demande de validation à un serveur d’origine.

Cache-Control : No-Store


La directive « Pas de boutique » signifie que les navigateurs ne sont pas autorisés à mettre une réponse en cache et doivent la retirer du serveur chaque fois qu’elle est demandée. Ce paramètre est généralement utilisé pour les données sensibles, telles que les données bancaires personnelles

Cache-Control : Public


La directive sur les réponses publiques indique qu’une ressource peut être mise en cache par n’importe quel cache.

Cache-Control : Privé


La directive sur les réponses privées indique qu’une ressource est spécifique à l’utilisateur – elle peut toujours être mise en cache, mais uniquement sur un appareil client. Par exemple, une réponse à une page web marquée comme privée peut être mise en cache par un navigateur de bureau, mais pas par un réseau de diffusion de contenu (CDN).
https://www.w3.org/Protocols/HTTP/Issues/cache-private.html

En-têtes de cache HTTP supplémentaires
Outre le contrôle du cache, les en-têtes de cache HTTP les plus importants sont les suivants

Expires – Cet en-tête spécifie une date/heure fixe pour l’expiration d’une ressource mise en cache. Par exemple, Expires : Sat, 13 mai 2017 07:00:00 GMT signale que la ressource mise en cache expire le 13 mai 2017 à 7:00 am GMT. L’en-tête expires est ignoré lorsqu’un en-tête de contrôle du cache contenant une directive max-age est présent.


ETag –

Un en-tête de réponse qui identifie la version du contenu servi selon un jeton – une chaîne de caractères entre guillemets, par exemple, « 836649-vi34 » – qui change après la modification d’une ressource. Si un jeton est inchangé avant qu’une demande ne soit faite, le navigateur continue à utiliser sa version locale.
Vary – En-tête qui détermine les réponses qui doivent correspondre à une ressource mise en cache pour qu’elle soit considérée comme valide. Par exemple, l’en-tête Vary : Accept-Language, User-Agent précise qu’une version en cache doit exister pour chaque combinaison d’agent utilisateur et de langue.


CDN et contrôle de la mise en cache


La diversité des en-têtes de cache peut rendre la gestion manuelle du cache écrasante. Les CDN permettent une gestion granulaire de la politique de cache grâce à un tableau de bord convivial, ce qui vous évite de devoir modifier manuellement les en-têtes individuels.

En plus de simplifier la gestion du cache, les CDN complètent le processus de mise en cache du navigateur à l’aide de proxies. La mise en cache par proxy rapproche le contenu des visiteurs du site, accélérant ainsi la livraison des ressources stockées localement. Cela est particulièrement avantageux pour les nouveaux visiteurs dont le navigateur n’a pas encore mis en cache le contenu du site.

Enfin, les CDN plus avancés utilisent des techniques d’automatisation avancées, notamment l’apprentissage machine, pour mettre en cache des contenus et des ressources générés dynamiquement. Cela permet d’optimiser vos politiques de mise en cache et d’accélérer encore la diffusion du contenu.