Во-первых, заметка в заголовке Expires
. В вашем вопросе не указано, какую серверную платформу вы используете, поэтому я не уверен, применимо ли это. Однако, похоже, вы отправляете неверный заголовок Expires
.
RFC требует, чтобы Expires
была датой , однако вы, похоже, устанавливаете заголовок на литерал "-1"
. Существует множество платформ, которые имеют свойство expires в своем объекте ответа HTTP, который принимает целое число и автоматически вычисляет дату, равную этому количеству секунд с этого момента.
Используйте инспектор HTTP , чтобы убедиться, что ваш сервер отправляет корректно отформатированную дату, а не -1
в заголовке Expires
.
Вы можете попытаться сделать заголовок Cache-Control
более строгим:
response.setHeader("Cache-Control", "private, no-cache, no-store, must-revalidate");
must-revalidate
говорит кешам, что они должны подчиняться любой информации о свежести, которую вы им предоставляете. HTTP позволяет кешам обслуживать устаревшие представления в особых условиях; указав этот заголовок, вы сообщаете кешу, что хотите, чтобы он строго следовал вашим правилам. [1]