如何禁用http标头的缓存?

时间:2016-06-01 01:30:45

标签: google-chrome caching cookies http-headers

我正在阅读关于MDN的HTTP basic authentication,它在网站上说:

  

由于BA头必须与每个HTTP请求一起发送,因此Web浏览器需要在一段合理的时间内缓存凭据,以避免不断提示用户输入用户名和密码。缓存策略因浏览器而异。默认情况下,Microsoft Internet Explorer将它们缓存15分钟。

然而,在我告诉chrome postman发送没有缓存标题的请求后,当我记录流量时,我仍然注意到存在“授权”字段服务器端:

{ host: 'localhost:3000',
  connection: 'keep-alive',
  authorization: 'Basic YWRtaW46cGFzc3dvcmQ=',   // why?
  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36',
  'cache-control': 'no-cache',
  'postman-token': '7e458c2d-b11b-026d-809b-68a7cf3d5a37',
  ....

然后我也尝试使用谷歌浏览器

{ host: 'localhost:3000',
  connection: 'keep-alive',
  pragma: 'no-cache',
  'cache-control': 'no-cache',
  authorization: 'Basic YWRtaW46cGFzc3dvcmQ=', // again
  ....
问题1:我为 Chrome 禁用了缓存(我找不到 no-cached选项,所以我只选择了“禁用缓存”调试器)和 postman (它有“no-cached header”选项),但它们仍包含身份验证 ...为什么?我怎么能阻止他们这样做?

问题2:当我尝试让客户发回 Cookie 时,我发生了同样的事情,我甚至使用 clear cookie 功能在Chrome历史中...但我仍然看到它在请求标题中的存在。我假设每个标题字段的缓存方式不同,我该如何管理cookie?

打开icognito会让浏览器忘记授权和Cookie ...但只有一次...后续标签会有这些标题

1 个答案:

答案 0 :(得分:0)

我注意到同样的事情,令人沮丧。但是,您可以点击Chrome网络检查器中的“停用缓存”选项,它将/应将其删除(在我的情况下,我只是需要它来使用新的Auth标头更新缓存)。

这很令人担忧,因为如果用户登录应用并且令牌过期,应用可以刷新它并将新令牌提供给http客户端,但Chrome会自动使用过期令牌覆盖它...