Http Cache: Что делать, если разные прокси-серверы HTTP кэшируют разные версии одного и того же контента? - PullRequest
1 голос
/ 24 марта 2011

Представьте, что пользователь запрашивает page.htm в своем браузере. Он проходит через Интернет, и один из прокси-серверов (P1) обслуживает кэшированную версию. Затем пользователь обновляет страницу, другой запрос проходит через Интернет и достигает прокси-сервера P2, который обслуживает документ, который был кэширован в другой момент. Пользователь видит 2 разных содержимого.

Вопрос: могло ли это произойти?

Если предположить, что политика истечения установлена ​​на абсолютную дату, этого не произойдет. (Хорошо в теории, потому что часы сервера не обязательно синхронизированы). Но как насчет относительной политики кэширования временного окна?

Если это может произойти, как обойти потенциальную проблему?

1 Ответ

1 голос
/ 24 марта 2011

Да, это может случиться.

Есть несколько способов справиться с этим:

  • Установите абсолютную дату истечения срока действия, как вы предлагаете.

  • Запретить кэширование для прокси, отправив Cache-Control: s-maxage=0, proxy-revalidate Однако я не уверен, что все прокси будут соблюдать это.

  • Если вы знаете, что скоро собираетесь изменить определенную страницу, выключите TTL своего кеша на очень короткий период. Затем прокси продолжат повторную проверку этой страницы с короткими интервалами. Как только новая страница выйдет, она должна быть быстро загружена, и вы можете повернуть TTL на больший период.

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