【发布时间】:2016-09-30 04:43:05
【问题描述】:
我正在阅读有关HTTP basic authentication 的信息。在 MDN 网站上,它说:
由于必须随每个 HTTP 请求发送 BA 标头,因此 Web 浏览器需要将凭据缓存一段合理的时间,以避免不断提示用户输入用户名和密码。不同浏览器的缓存策略不同。默认情况下,Microsoft Internet Explorer 会将它们缓存 15 分钟。
但是,在我告诉chrome postman 发送没有缓存标头的请求后,当我在服务器端记录流量时,我仍然注意到authorization 字段的存在:
{ 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',
....
然后我也尝试只使用 google chrome,但我再次看到了 authorization 字段:
{ host: 'localhost:3000',
connection: 'keep-alive',
pragma: 'no-cache',
'cache-control': 'no-cache',
authorization: 'Basic YWRtaW46cGFzc3dvcmQ=', // again
....
问题 1:我为两个 Chrome 都禁用了缓存(我找不到 no-cached 选项,所以我只选择了“禁用缓存” 在 chrome 调试器中)和 postman (有一个“无缓存标头”选项),但它们仍然包含 authentication 标头...为什么?我怎样才能阻止他们这样做?
问题2:当我试图让客户端不发回Cookie时发生了同样的事情,我什至使用了clear cookie chrome 历史中的功能......但我仍然在请求标头中看到它的存在。我假设每个标头字段都以不同的方式缓存,那么我该如何管理 cookie?
打开隐身窗口会使浏览器忘记授权和 cookie...但只有一次:后续选项卡会有这些标题。
【问题讨论】:
-
我刚刚了解到这些cookies被称为浏览器会话cookies,如果我关闭并重新打开浏览器(或打开一个icognito)它们就会消失,但是我没有其他方法来控制它们吗?
标签: google-chrome caching cookies http-headers