Qu'est-ce que l'en-tête HTTP Cache-control ?
L’entête HTTP de réponse Cache-Control
permet de définir la manière dont une réponse peut être mise en cache, ainsi que sa durée de validité.
Par exemple : Cache-Control: public, max-age=3600
La directive max-age
spécifie la durée, exprimée en secondes, pendant laquelle une réponse peut être mise en cache.
Les directives public
et private
déterminent le type de cache autorisé à stocker la réponse :
-
Cache partagé : Ce type de cache, situé entre le serveur d’origine et les clients (comme un proxy ou un CDN), est capable de stocker une seule réponse qui peut ensuite être réutilisée pour plusieurs utilisateurs. Par conséquent, un cache partagé ne doit pas stocker de contenu personnalisé, car ce contenu est destiné à un utilisateur spécifique.
-
Cache privé : Ce type de cache, spécifique à chaque client et généralement stocké dans le navigateur de l’utilisateur, est capable de stocker et de réutiliser du contenu personnalisé pour un utilisateur individuel.
Ainsi, en pratique, lorsque le navigateur d’un utilisateur reçoit une réponse avec Cache-Control: private
, il sait qu’il peut stocker cette réponse dans son cache local et la réutiliser pour ce même utilisateur. En revanche, si un cache partagé (comme un CDN) reçoit cette réponse, il sait qu’il ne doit pas la stocker et la servir à d’autres utilisateurs.
Lorsqu'une requête est effectuée pour la même ressource, le navigateur vérifie d’abord son cache local. Si la ressource est présente dans le cache et que sa durée de validité max-age
n’est pas expirée, le navigateur utilisera la version en cache de la ressource. Cela permet de charger la page plus rapidement, car le navigateur n’a pas besoin de refaire une requête au serveur pour cette ressource.