Ответ 1
Expires
был определен в спецификациях HTTP/1.0
и Cache-Control
в спецификациях HTTP/1.1
.
Я бы предложил определение обоих, чтобы вы обслуживали обоих, более старых клиентов, которые понимают только HTTP/1.0
и более новые.
Не могли бы вы рассказать мне о различиях в Expires и Cache-control: max-age?
Expires
был определен в спецификациях HTTP/1.0
и Cache-Control
в спецификациях HTTP/1.1
.
Я бы предложил определение обоих, чтобы вы обслуживали обоих, более старых клиентов, которые понимают только HTTP/1.0
и более новые.
Истекает был указан в спецификации 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 будет иметь приоритет над заголовком Expires. Итак, что-то нужно помнить и там.