В чем разница Expires и Cache-control:max-age?

#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