Как мы можем контролировать кэширование веб-страниц во всех браузерах?

(привет всем: пожалуйста, не http просто бездумно копируйте http-headers и вставляйте все заголовки, которые https можете найти)

Прежде всего, Back button history is not a cache:

Модель caching свежести (раздел 4.2) не cache-coherence обязательно применима к механизмам https истории. То есть механизм cached истории может отображать cache-coherence предыдущее представление, даже https если срок его действия истек.

В cache-coherence старой спецификации HTTP browser-compatibility формулировка была еще более cached жесткой, явно запрещающей browser-compatibility браузерам игнорировать директивы browser-compatibility кеширования для истории кнопок http-headers назад.

Предполагается, что http-headers назад можно вернуться во cross-browser времени (к тому времени, когда browser-compatibility пользователь был вошел в систему). Он cross-browser не переходит к ранее открытому https URL.

Однако на практике кеш cached может влиять на кнопку "Назад" в https очень определенных обстоятельствах:

  • Страница должна доставляться через HTTPS, в противном случае очистка кеша будет ненадежной. Кроме того, если вы не используете HTTPS, ваша страница уязвима для кражи логина многими другими способами.
  • Вы должны отправить Cache-Control: no-store, must-revalidate (некоторые браузеры соблюдают no-store, а некоторые - must-revalidate)

Вам cache-coherence никогда не понадобится:

  • с заголовками кеша - вообще не работает. Совершенно бесполезно.
  • post-check / pre-check - это директива только для IE, которая применяется только к cachable ресурсам.
  • Отправка одного и того же заголовка дважды или дюжиной частей. Некоторые фрагменты PHP фактически заменяют предыдущие заголовки, в результате чего отправляется только последний.

Если хотите, можете cache добавить:

  • no-cache или max-age=0, которые сделают ресурс (URL) «устаревшим» и потребуют от браузеров проверки на сервере, есть ли более новая версия (no-store уже подразумевает, что это еще более надежно).
  • Expires с датой в прошлом для клиентов HTTP / 1.0 (хотя настоящие клиенты только для HTTP / 1.0 в наши дни полностью отсутствуют).

Бонус: The new HTTP caching RFC.

http

caching

https

http-headers

cross-browser

2022-11-20T18:52:12+00:00
Вопросы с похожей тематикой, как у вопроса:

Как мы можем контролировать кэширование веб-страниц во всех браузерах?