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?

146
demandé sur BartoszKP 2011-04-27 09:44:26

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.

110
répondu A Lee 2017-05-23 12:34:50

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.

27
répondu user3241258 2014-01-27 16:49:05

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.

14
répondu Paul 2015-07-10 23:03:21

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.

2
répondu Devi 2016-07-27 01:38:44

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 .

1
répondu nodejh 2017-07-23 16:54:37

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

0
répondu ray 2018-07-16 00:12:45