2016-06-01 45 views
1

我念叨HTTP basic authentication上MDN,它说,在网站上:如何禁用http头的缓存?

由于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', 
    .... 

然后我也试过用google chrome

{ host: 'localhost:3000', 
    connection: 'keep-alive', 
    pragma: 'no-cache', 
    'cache-control': 'no-cache', 
    authorization: 'Basic YWRtaW46cGFzc3dvcmQ=', // again 
    .... 

问题1:我两个禁用缓存(我找不到无缓存选项,所以我就选择了镀铬调试“禁用缓存”)和邮递员(其中是否有“一个选项没有缓存头“),但他们仍然包括身份验证 ...为什么?我怎样才能防止他们做到这一点?

问题2:同样的事情发生了,当我试图让客户发送回饼干,我甚至用铬历史明确的cookie功能...但我还是看到它的存在要求头。我假设每个标题字段的缓存方式不同,我如何管理cookie?

打开icognito将会使浏览器忘记授权和饼干......但只有一次......后续标签将这些头

+0

我刚刚了解到,这些cookie被称为浏览器会话cookie,如果我关闭并重新打开浏览器(或打开一个icognito),它们将消失,但是我没有其他方法来控制它们吗? – watashiSHUN

回答

0

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

这是因为如果用户登录到应用程序并且令牌过期,应用程序可以刷新它并向http客户端提供新的令牌,但Chrome会自动用过期的令牌覆盖它...