繁体   English   中英

响应头以缓存响应?

[英]response header to cache the response?

在我的Web应用程序的某些页面中,我有两种浏览器缓存方案

方案1:-如果未在服务器端进行修改,我想从浏览器缓存中进行服务器处理。 例如 :-

  1. 用户向所有员工发出请求
  2. 响应返回10名员工
  3. 用户再次向所有员工发出请求
  4. 预计这次是应该从浏览器缓存中投放
  5. 用户再创建一名员工
  6. 用户再次向所有员工发出请求
  7. 期望这次是应该从服务器而不是浏览器缓存中最晚提供服务

我打算在标题下面使用

response.setHeader("Cache-Control", "no-cache"); 

no-cache不会指示浏览器或代理有关是否缓存内容。 它只是告诉浏览器和代理在使用服务器之前验证服务器的缓存内容

方案2:-但是对于某些敏感的页面,我根本不想缓存,我计划将其使用在标题下方

response.setHeader("Cache-Control",  "no-store"); 

但是一些标题下的标题可以安全使用,以使其适用于所有浏览器。 所以我将在下面使用

response.setHeader("Cache-Control", "no-cache, no-store"); 

我提出的实施方案正确吗?

对于场景1,您确实确实需要将Cache-Control设置为no-cache (或设置max-age以实现更好的可伸缩性,但在这种情况下,您将没有必要的最新值),但是还需要使用HTTP标头ETag ,以允许浏览器检查数据内容是否已更改,以便浏览器将能够知道缓存条目是否可以重用。

对于方案2,您需要将Cache-Control设置为no-store以防止浏览器缓存数据,因为这是标准方式,但实际上是no-cache, no-store如果您需要支持no-cache, no-store将有助于在旧的浏览器上工作他们也是。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM