Expires vs max-age, какой из них имеет приоритет, если оба объявлены в ответе HTTP?

Если HTTP-ответ возвращает как Expires, так и max-age, какой из них используется?

Cache-Control: max-age=3600
Expires: Tue, 15 May 2008 07:19:00 GMT

Учитывая, что каждый из них относится к разным моментам времени.


person vtortola    schedule 25.09.2011    source источник


Ответы (3)


Смотрите этот ответ:

Разница между тремя правилами истечения срока действия .htaccess

Если ответ включает заголовок Expires и директиву max-age, директива max-age имеет приоритет над заголовком Expires, даже если заголовок Expires является более строгим. Это правило позволяет исходному серверу предоставить для заданного ответа более длительный срок действия для кэша HTTP/1.1 (или более поздней версии), чем для кэша HTTP/1.0. Это может быть полезно, если некоторые кэши HTTP/1.0 неправильно рассчитывают возраст или время истечения срока действия, возможно, из-за десинхронизации часов.

person Peter O.    schedule 26.09.2011
comment
Это только в Apache или это общее правило? Спасибо. - person vtortola; 26.09.2011
comment
Это применимо в целом; абзац выше взят из раздела 14.9.3 спецификации HTTP/1.1. - person Peter O.; 26.09.2011

Этот случай описан в официальном RFC W3C.

Директива max-age имеет приоритет над Expires

person Cybermaxs    schedule 06.12.2013

Но что об этом говорит спецификация rfc-6265?

A cookie is "expired" if the cookie has an expiry date in the past.


Finally, to remove a cookie, the server returns a Set-Cookie header
with an expiration date in the past.
person Sandz    schedule 22.10.2019
comment
И элемент управления кешем, и заголовок expires не имеют ничего общего с файлами cookie. - person Ferrybig; 22.10.2019
comment
Что нам делать, если у нас есть прошедшая дата истечения срока действия в атрибуте expires, но с учетом максимального возраста срок действия файла cookie не истек? Так должны ли мы отдавать приоритет max-Age, а не удалять cookie?? - person Sandz; 22.10.2019