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 alors que Cache-Control
max-age vous permet de spécifier une durée relative afin que vous puissiez spécifier "X heures après la demande de la page".
Le contrôle HTML Cache 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, il Expires
est recommandé pour les ressources statiques comme les images et Cache-Control
lorsque vous avez besoin de plus de contrôle sur la façon dont la mise en cache est effectuée.
Si vous utilisez un CDN (Cloud Delivery Network), je vous recommande d'utiliser Cache-Control avec une durée maximale en secondes. Par exemple, Cache-Control: max-age = 604800. Cela évite les pics de requêtes vers votre serveur d'origine: Avec "Expire le mercredi 30 octobre 20xx 04:37:07 GMT", tous les navigateurs vous demanderont en même temps.
cache-control
. Donc, je ne vois pas pourquoi il y aurait des pics de demandes lors de l'utilisationExpires:
Selon cet article de Google Developers, HTTP Caching :
L'en-tête Cache-Control a été défini dans le cadre de la spécification HTTP / 1.1 et remplace les en-têtes précédents (par exemple Expires) utilisés pour définir les politiques de mise en cache des réponses. Tous les navigateurs modernes prennent en charge Cache-Control, c'est donc tout ce dont nous aurons besoin.
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. Elle est mesurée en secondes: Cache-Control: max-age=3600
.
Le Expires
champ d'en-tête donne la date / heure après laquelle la réponse est considérée comme périmée. La valeur est un horodatage Expire date HTTP: Expires: Tue, 18 Jul 2017 16:07:23 GMT
.
Si une réponse comprend un Cache-Control
champ avec la max-age
directive, un destinataire DOIT ignorer le Expires
champ.
Heroku devcenter a un excellent article sur ce sujet.
En citant,
Alors que l'en-tête Cache-Control active la mise en cache côté client et définit l'âge maximal d'une ressource, l'en-tête Expires est utilisé pour spécifier un moment précis dans lequel la ressource n'est plus valide.
Sauf pour les options privées / publiques de CC, je ne vois aucune différence. Lorsque vous utilisez Expires comme "accès plus 1 an / mois / semaine / jour", cela fonctionne exactement de la même manière que CC.
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 Expire avant que Cache-Control