Назад | Перейти на главную страницу

Если сервер возвращает Cache-Control = public без Max-Age или Expires, может ли прокси кэшировать его навсегда?

Если сервер возвращает Cache-Control = public без Max-Age или Expires, может ли прокси-сервер кэшировать его навсегда? Есть ли у прокси или спецификации встроенные значения по умолчанию для этих значений? Всегда ли сервер так поступает? Спасибо.

Cache-Control    public
Content-Length  10874
Content-Type      text/html; charset=utf-8
Server          Microsoft-IIS/7.0
X-Powered-By    ASP.NET
X-AspNet-Version  4.0.30319
Date              Thu, 24 Mar 2011 18:45:52 GMT

Имейте в виду, что кеширование - это не то же самое, что повторная проверка. Прокси-сервер может кэшировать объект навсегда, но повторно проверять его на исходном сервере каждый раз, когда делается запрос для этого объекта (т. Е. Делать запрос If-Modified-Since или If-Match, который позволяет исходному серверу указать, что объект не имеет не изменилось без повторного возврата объекта). Если исходный сервер указывает истечение срока действия (т.е. отправляет Expires или Cache-Control: max-age заголовок), прокси может считать объект "свежим" для этого периода, а это значит, что ему не нужно его повторно проверять. Если объект не свежий, он считается «устаревшим», что означает, что он должен повторно проверить объект.

Технически прокси-серверы должны обрабатывать объекты как устаревшие, если исходный сервер не указывает на истечение срока, но кажется, что большинство прокси-серверов рассматривают объекты как свежие в течение определенного периода. Похоже, что поведение Squid по умолчанию

refresh_pattern .               0       20%     4320

это означает, что если сервер отправил Last-Modified заголовок, объект считается свежим в течение 20% разницы между текущим и последним измененным временем до максимум 4320 секунд (3 часа), но никогда не является новым, если Last-Modified заголовок не был отправлен.

Да, прокси всегда имеют встроенные значения по умолчанию, подавляющее большинство веб-сайтов даже не предоставляют информацию о том, как долго они могут храниться или нет, поэтому они должны иметь значение по умолчанию, которое они могут использовать, чтобы предотвратить появление обновленных веб-сайтов.