在我的网页应用程序的某些页面中,我有两种浏览器缓存方案
场景1: - 如果不在服务器端修改,我想从浏览器缓存服务器。例如: -
我打算使用下面的标题
response.setHeader("Cache-Control", "no-cache");
作为
no-cache不指示浏览器或代理是否或 不要缓存内容。它只是告诉浏览器和代理 在使用之前使用服务器验证缓存内容
场景2: - 但是对于一些我根本不想缓存的敏感页面,我打算使用下面的标题
response.setHeader("Cache-Control", "no-store");
但有些文章可以在标题下方使用,以使其适用于所有浏览器。所以我将在下面使用
response.setHeader("Cache-Control", "no-cache, no-store");
我建议的实施是否正确?
答案 0 :(得分:2)
对于场景#1 ,您确实需要将Cache-Control
设置为no-cache
(或设置max-age
以获得更好的可扩展性,但在这种情况下,您赢了& #39; t有必要的最新值)但你还需要使用HTTP标头ETag以允许浏览器检查数据内容是否已更改,以便浏览器能够知道缓存是否条目可以重复使用。
对于场景#2 ,您需要将Cache-Control
设置为no-store
,以防止浏览器以标准方式缓存数据,但确实no-cache, no-store
如果你也需要支持它们,将有助于在旧版浏览器上工作。