От RFC2616 HTTP/1.1 Header Field Definitions, 14.9.1 What is Cacheable:
private
Indicates that all or part of the response message is intended for a single
user and MUST NOT be cached by a shared cache. This allows an origin server
to state that the specified parts of the response are intended for only one
user and are not a valid response for requests by other users. A private
(non-shared) cache MAY cache the response.
max-age=0
означает, что он может находиться в кэше до 0 секунд. Нулевое значение будет означать, что кэширование не должно выполняться.
Expires=-1
следует игнорировать, если присутствует max-age
, а -1 - недопустимая дата и должна анализироваться как значение в прошлом (значение уже истекло).
От RFC2616 HTTP/1.1 Header Field Definitions, 14.21 Expires:
Note: if a response includes a Cache-Control field with the max-age directive
(see section 14.9.3), that directive overrides the Expires field
HTTP/1.1 clients and caches MUST treat other invalid date formats, especially
including the value "0", as in the past (i.e., "already expired").
В Connection: Keep-Alive
Keep-Alive: timeout=60, max=100
и настраивает параметры для persistent connections. Все соединения, использующие HTTP/1.1, являются постоянными, если не указано иное, но эти заголовки изменяют фактические значения таймаута вместо использования браузеров по умолчанию (которые сильно различаются).
Хороший ответ. Чтобы завершить работу, можете ли вы объяснить, почему max-age = 0 настроен для Google, а Yahoo и Stackoverflow не могут его отменить? И как работает кеш, если max-age не установлен? –
Yahoo (se.search.yahoo.com) отправляет мне «private, max-age = 0, no-cache». Я не знаю, почему StackOverflow не указывает max-age, он в настоящее время позволяет браузеру кэшировать страницу результатов. Спросите на Мета! – sisve