У меня возникла путаница по поводу того, как обращаться с этим сценарием кэширования.
Пользователь посещает страницу, которая изначально должна быть кэширована.Поэтому я установил заголовки с помощью php ...
header("Expires: " . gmdate("D, d M Y H:i:s", time() + 86400) . " GMT");
header("Cache-Control: max-age=86400");
header("Pragma: cache");
Это работает отлично.Браузер пользователя загружает страницу из кэша каждый раз, когда они посещают ее.Я проверял это только в Chrome - он подчиняется заголовкам, и все хорошо.
Но затем я изменяю некоторый контент на странице.Я хочу, чтобы новый контент, который был добавлен, также отображался при следующем посещении страницы пользователем.Я попытался установить заголовки, чтобы сообщить браузеру не загружать страницу из кэша, а получить ее с сервера.Заголовки выглядят так ...
header("Expires: Mon, 01 Jan 1970 00:00:00 GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
Но браузер по-прежнему получает содержимое из своего кэша.Похоже, что браузер запоминает старые заголовки и продолжает подчиняться инструкциям, которые он дал, что, как мне кажется, является ожидаемым поведением.Но проблема в том, что он не получает новые заголовки и не обнаруживает, что срок действия содержимого истек.
Как сообщить браузеру, что срок действия содержимого истек?