Відповіді:
Cache-Control
була представлена в HTTP / 1.1 і пропонує більше варіантів, ніж Expires
. Вони можуть використовуватися для того ж, але значення даних Expires
- це дата HTTP, тоді як Cache-Control
максимальний вік дозволяє вказати відносну кількість часу, щоб ви могли вказати "X годин після запиту на сторінку".
Управління кешем HTML - це дуже схоже запитання і має гарне посилання на підручник із кешування, який повинен відповісти на більшість ваших питань (наприклад, http://www.mnot.net/cache_docs/#EXPIRES ). Підсумовуючи, Expires
рекомендується використовувати статичні ресурси, такі як зображення, і Cache-Control
коли вам потрібно більше контролювати кешування.
Якщо ви використовуєте CDN (Cloud Cloud Network), рекомендую використовувати кеш-контроль з максимальним віковим часом у секундах. Наприклад кеш-контроль: max-age = 604800. Це запобігає максимальній кількості запитів на ваш початковий сервер: "Термін дії закінчується, 30 жовтня 20 хв.
cache-control
. Тож я не бачу, чому при використанні буде пік запитівExpires:
Відповідно до цієї статті розробників Google, керування HTTP :
Заголовок кеша-керування був визначений як частина специфікації HTTP / 1.1 і замінює попередні заголовки (наприклад, Expires), що використовуються для визначення політики кешування відповідей. Усі сучасні браузери підтримують кеш-контроль, отже, це все, що нам буде потрібно.
Кеш-контроль, визначений у HTTP / 1.1, повідомляє всі механізми кешування від сервера до клієнта, чи можуть вони кешувати цей об’єкт. Вона вимірюється в секундах: Cache-Control: max-age=3600
.
Поле Expires
заголовка дає дату / час, після яких відповідь вважається несвіжим. Завершується значення є HTTP-дата мітки часу: Expires: Tue, 18 Jul 2017 16:07:23 GMT
.
Якщо відповідь включає Cache-Control
поле з max-age
директивою, одержувач ОБОВ'ЯЗКОВО ігнорує Expires
поле.
Heroku devcenter має чудову статтю на цю тему.
Цитуючи це,
Хоча заголовок Cache-Control включається кешування на стороні клієнта і встановлює максимальний вік ресурсу, заголовок Expires використовується для визначення конкретного моменту часу, коли ресурс більше не дійсний.
За винятком приватних / публічних варіантів CC, я не бачу різниці. Під час використання Expires типу "доступ плюс 1 рік / місяць / тиждень / день" він працює точно так само, як це робить CC.
Якщо ви все ще зацікавлені, я залишаю цю рекомендацію безпосередньо від хлопців Google. https://developers.google.com/speed/docs/insights/LeverageBrowserCaching Вони віддають перевагу Закінчується раніше, ніж кеш-контроль