Quelle est la différence entre les en-têtes Expires et Cache-Control?
Quelle est la différence entre Expires
et Cache-Control
headers?
6 réponses
Cache-Control
a été introduit dans HTTP/1.1 et offre plus d'options que Expires
. Ils peuvent être utilisés pour accomplir la même chose mais la valeur de données pour Expires
est une date HTTP tandis que Cache-Control
max-age vous permet de spécifier un temps relatif de sorte que vous pouvez spécifier "X heures après la page a été demandée".
contrôle de Cache HTML est une question très similaire et a un bon lien vers un tutoriel de mise en cache qui devrait répondre la plupart de vos questions (par exemple, http://www.mnot.net/cache_docs/#EXPIRES ). Pour résumer, Expires
est recommandé pour les ressources statiques comme les images et Cache-Control
quand vous avez besoin de plus de contrôle sur la façon dont la mise en cache est faite.
si vous utilisez un CDN (Cloud Delivery Network), je vous recommande D'utiliser Cache-Control avec un temps max-age en quelques secondes. Par exemple Cache-Control: max-age=604800. Cela empêche demande-des pics à votre origine-serveur: Avec "Expire le Wed, 30 Oct 20xx 04:37:07 GMT" tous les navigateurs vous demande en même temps.
selon cet article de Google Developers, cache HTTP :
-tête Cache-Control a été définie comme la partie de la spécification HTTP/1.1 et remplace les en-têtes précédents (par exemple Expires) utilisés pour définir la réponse stratégies de mise en cache. Tous les navigateurs modernes prennent en charge le Cache-Control, donc c'est tout ce que nous aurons besoin.
Heroku devcenter a un excellent article à ce sujet.
citant de lui,
alors que L'en-tête Cache-Control active la mise en cache côté client et fixe l'âge maximal d'une ressource, L'en-tête Expires est utilisé pour spécifier un point précis dans le temps où la ressource n'est plus valide.
Cache-Control a été défini dans HTTP/1.1, indique à tous les mécanismes de mise en cache du serveur au client s'ils peuvent mettre en cache cet objet. Il est mesuré en secondes: Cache-Control: max-age=3600
.
le champ d'en-tête Expires
indique la date/heure après laquelle la réponse est considérée comme périmée. La valeur Expires est un timestamp HTTP-date: Expires: Tue, 18 Jul 2017 16:07:23 GMT
.
si une réponse inclut un champ Cache-Control
avec la directive max-age
, un destinataire doit ignorer le champ Expires
.
si vous êtes toujours intéressé, je laisse cette recommandation directement des garçons de google. https://developers.google.com/speed/docs/insights/LeverageBrowserCaching Ils préfèrent expirer avant que Cache-Control