禁用客户端缓存的最佳方法

dfa*_*dfa 5 caching http

我正在使用一个简单的servlet过滤器,强制浏览器跳过某些服务器资源的缓存:

    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没有任何缓存.其他浏览器怎么样?没有适用于主流浏览器的缓存标头的最佳实践怎么样?

mik*_*ikl 7

Drupal 6执行此操作(适用于我所知的每个浏览器):

  • Expires:Sun,1978年11月19日05:00:00 GMT
  • Last-Modified:Fri,2009年6月12日08:01:46 GMT(实际修改日期)
  • Cache-Control:store,no-cache,must-revalidate,post-check = 0,pre-check = 0

此实例中没有pragma标头.我不确定为什么你的例子不起作用,它可能是负时间戳,这适用于~250.000 Drupal网站:)