适用于appcache的正确缓存控制标头

时间:2013-06-17 08:39:45

标签: caching web header cache-control

我无法找出缓存控制标头,用于提供用于使用AppCache的HTML5应用程序的文件,该应用程序适用于所有主流浏览器(Chrome / Safari,Opera,Firefox,IE10)。

我遇到的问题是,当某种标题适用于某个浏览器时,另一种标题可能会完全破坏。例如:

Cache-Control: private

在Webkit浏览器上运行良好,它们刷新并加载更新的文件并在缓存中替换它们。但是Firefox和IE10都拒绝加载新文件,而是从缓存中获取它们(而不是appcache!),即使它们识别出更新的清单文件。

Cache-Control: no-cache

也适用于webkit浏览器,也使Firefox和IE10加载新文件,而不是从缓存加载它们,但打破了脱机功能,因为它们基本上不缓存(如标题所示)文件,即使它们在appcache清单中明确提到过。

最后,我试过

Cache-Control: must-revalidate

no-cache的工作方式类似,但Firefox和IE10不保留文件供离线使用,而是不保留文件的Webkit。

发送没有Cache-Control标头会产生与privatepublic相同的结果,因为我认为浏览器只是假定这是标准方式。

那我错过了什么? publicprivate的结果相同,并且设置max-age不是一个选项,因为更新(包括修补程序)不会定期发送,而是在可用或需要时发送。

有人可以了解哪个Cache-Control标头正确使用,哪个适用于所有浏览器?

0 个答案:

没有答案