Как ведет себя кеш браузера, если локальные часы не соответствуют серверным часам? - PullRequest
7 голосов
/ 08 июня 2011

Читая http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html,, я обнаружил, что алгоритм кэширования более сложен, чем я думал.

Согласно RFC2616, HTTP-запрос отправляется, если ответ свежий.и

response_is_fresh = (freshness_lifetime > current_age)

current_age может быть получен из заголовка max-age или Expires , которые оба не имеют ничего общего с локальными часами,Однако расчет freshness_lifetime зависит от локальных часов.

Таким образом, если локальные часы браузера не соответствуют часам на стороне сервера.Возможно ли, что кэширование HTTP не освобождает от ненужных отправленных запросов?

Спасибо

1 Ответ

2 голосов
/ 12 июля 2011

Их часы не должны быть синхронизированы, но клиенту нужны рабочие часы, чтобы иметь возможность определить возраст кэшированного ресурса и сопоставить его с max-age.Если max-age отсутствует в ответе, клиент может рассчитать его, сравнив Date и ExpiresЗаголовки друг к другу.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...