Лучший способ отключить кэширование клиента

Я использую простой фильтр сервлетов, который заставляет браузер пропускать кэширование для некоторых ресурсов сервера:

    Cache-Control: private
    Pragma: 

Это отлично работает в Internet Explorer, но не работает с Firefox 3.0.10. Я закончил писать этот код:

    Cache-Control: no-cache, no-store, must-revalidate, max-age=-1
    Pragma: no-cache, no-store
    Expires: -1 // -1 is the unix time, the client receives a date in 1969 :)
    Last-Modified: -1 // ditto

это заставляет Firefox ничего не кэшировать. А как насчет других браузеров? Как насчет лучших практик по отсутствию кэширующих заголовков, которые работают в основных браузерах?

Ответы на вопрос(2)

Контроль кэша используется для указания директив, которые ДОЛЖНЫ выполняться всеми механизмами кэширования в цепочке запросов / ответов. Единственные известные мне механизмы - это прокси-серверы, поэтому пользовательские агенты не связаны им.Pragma: заголовок не содержит значения. Я не уверен, что это даже законно - с точки зрения протокола HTTP.
 dfa12 июн. 2009 г., 10:12
Прагма без значения хорошо обрабатывается IE :)
 Robert Munteanu12 июн. 2009 г., 10:29
Да, по IE. Вы специально просили другие браузеры. Кроме того, я сказал, что решение не работает надежно, не то, что оно не работает.
Решение Вопроса

Drupal 6 делает это (это работает в любом известном мне браузере):

Истекает: Солнце, 19 ноября 1978 года, 05:00:00 по ГринвичуПоследнее изменение: Пт, 12 июня 2009 08:01:46 GMT (фактическая дата изменения)Cache-Control: store, no-cache, must-revalidate, post-check = 0, pre-check = 0

Нет заголовка прагмы в этом случае. Я не уверен, почему ваш пример не работает, это могут быть отрицательные временные метки, это работает на ~ 250.000 сайтов Drupal :)

 dfa12 июн. 2009 г., 10:11
Спасибо, что поделились этой информацией

Ваш ответ на вопрос