是否可以创建不存储到用户浏览器缓存中的基本单页网页?
要么
是否可以创建一个从用户浏览器缓存中删除自身的基本单页网页?
我知道,这样的页面并不是万无一失的,因为用户可以简单地截取屏幕截图来捕获网页上的数据。
最佳答案
兼容的浏览器(如所有主流浏览器,Chrome,FF,IE,Safari)将遵循cache control headers的指示,并且不会缓存页面。
关闭缓存应该通过发送以下带有响应的标头来完成:
Cache-Control : no-cache
由于页面是由url缓存的,因此您可以通过发送带有适当标题的新版本来有效地从缓存中删除页面(假设浏览器实际上请求了一个)。
注意事项:
中间服务器(代理,CDN)可能具有不同的规则,同样,兼容的代理也将不会缓存标记有“私有”,“无缓存”或“无存储”缓存控制标头的页面。
如果页面的较早版本未指定阻止缓存的缓存控制标头,则对同一页面的请求可能无法到达服务器,因为可以从本地浏览器缓存或代理/ CDN缓存提供服务。
请注意,某些浏览器(大多数浏览器的旧版本以及IE的活动版本)也可能会查看
<meta>
标记(如<meta http-equiv="cache-control" content="no-cache" />
)以不缓存页面,但是此行为未在规范中定义,因此不应依靠。有关此问题的更多链接/讨论:Using <meta> tags to turn off caching in all browsers?。