Cache-Control: no-cache
和 Cache-Control: max-age=0, must-revalidate, proxy-revalidate
的 HTTP 响应有什么区别?
浏览器是否将它们视为相同?
Cache-Control: no-cache
和 Cache-Control: max-age=0, must-revalidate, proxy-revalidate
的 HTTP 响应有什么区别?
浏览器是否将它们视为相同?
一般来说,不同的浏览器在HTTP缓存头方面的行为并不完全相同。
我记得有一个小差异(找不到来源,所以我不能百分之百确定这是确切的行为描述),那就是Chrome(好像是)把max-age=0
视为您指定了max-age=10
(假设行为差异足够小,但性能影响仍然很大)。
无论如何,以下是浏览器之间HTTP缓存行为差异的其他示例:
Pragma
),另一些浏览器会更喜欢HTTP 1.1缓存头部no-store
指令,并将数据存储在加密缓存中public
后指定no-cache
指令的情况,而其他浏览器则不会。vary
时,IE忽略max-age
。我的总体建议是使用Cache-Control: no-cache, must-revalidate, proxy-revalidate
、pragma: no-cache
(HTTP 1.0)和Expires: 0
这两个头部,以确保所有浏览器都不会缓存带有这些头的内容。
max-age=0
视为指定了 max-age=10
的信息的? - Pacerier