我无法找出缓存控制标头,用于提供用于使用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标头会产生与private
或public
相同的结果,因为我认为浏览器只是假定这是标准方式。
那我错过了什么? public
与private
的结果相同,并且设置max-age不是一个选项,因为更新(包括修补程序)不会定期发送,而是在可用或需要时发送。
有人可以了解哪个Cache-Control标头正确使用,哪个适用于所有浏览器?