#http-headers #cache-control
#http-заголовки #cache-control
Вопрос:
Не могли бы вы рассказать мне, в чем разница Expires и Cache-control:max-age?
Комментарии:
1. Приведенной информации недостаточно для понимания / ответа на вопрос.
Ответ №1:
Expires
было определено в HTTP/1.0
спецификациях и Cache-Control
в HTTP/1.1
спецификациях.
Я бы предложил определить оба, чтобы вы обслуживали как старые клиенты, которые только понимают HTTP/1.0
, так и более новые.
Ответ №2:
Expires
было указано в спецификации HTTP 1.0 по сравнению с Cache-Control: max-age
, которая была введена в ранней спецификации HTTP 1.1. Значение Expires
заголовка должно быть в очень определенном формате даты и времени, любая ошибка в котором сделает ваши ресурсы недоступными для кэширования. Cache-Control: max-age
Значение заголовка при отправке в браузер выражается в секундах, вероятность возникновения какой-либо ошибки при этом значительно меньше.
Поскольку вы можете указать только один из двух заголовков в вашем файле web.config, я бы предложил использовать Cache-Control: max-age
заголовок из-за гибкости, которую он предлагает при установке относительного промежутка времени от текущей даты до даты в будущем. В принципе, вы можете установить и забыть, по сравнению со случаем с Expires
заголовком, значение которого вам нужно будет обновлять не реже одного раза в год. И если вы задаете оба заголовка программно из своего кода, знайте, что значение Cache-Control: max-age
header будет иметь приоритет над Expires
header . Итак, здесь тоже следует кое-что иметь в виду.
Из настройки Expires и Cache-Control: заголовки max-age для статических ресурсов в ASP.NET