“no-cache”vs“max-age = 0,must-revalidate,proxy-revalidate”

时间:2013-03-14 05:16:10

标签: http caching browser-cache cache-control rfc2616

Cache-Control: no-cacheCache-Control: max-age=0, must-revalidate, proxy-revalidate的HTTP响应之间的区别是什么?

浏览器会将其视为相同的吗?

1 个答案:

答案 0 :(得分:2)

一般来说,不同的浏览器表现不完全相同。 HTTP缓存标头。

我记得的一个小差异(无法找到来源,因此我并非100%这是确切的行为描述)是Chrome(afair)将max-age=0视为您指定max-age=10(假设行为差异足够小,但性能影响仍然有意义。)

在任何情况下,以下是浏览器之间HTTP缓存行为差异的一些其他示例:

  • 有些人会优先使用HTTP 1.0 Cache标头(Pragma),其他人会优先使用HTTP 1.1 Cache标头
  • 某些浏览器(FF +?)don't honor no-store指令并将数据存储在加密缓存中
  • 某些浏览器忽略了no-cache后指定public指令,其他浏览器没有指定。
  • max-age出现时,
  • IE ignores vary

我的总体建议是同时使用Cache-Control: no-cache, must-revalidate, proxy-revalidatepragma: no-cache(HTTP 1.0)和Expires: 0,以确保所有浏览器都不会使用这些标头缓存内容。