我很难理解用于基本HTTP身份验证的WWW-Authenticate
标头中“领域”值的用途。
This question 询问“领域”值是什么 - 答案似乎非常简单。 “领域”有点像命名空间,表示受保护资源的集合。
好的,所以我得到了抽象的概念。但在实践中,特别是从HTTP客户端的角度来看,“领域”实际上有何帮助?
通过HTTP进行身份验证时,基本工作流程似乎是:
(1)服务器以WWW-Authenticate
的形式发出挑战
标题
(2)客户端响应Authorization
标题,以及
包含用户名和密码的base64编码字符串。
(3)客户现在被授予访问权限(如果凭据错误则被拒绝)
所以其中中的哪一个应该是客户端必须关心服务器发送的“领域”值?
我的理解是,如果客户端想要再次访问受保护资源,则唯一需要的是再次发送“授权”标头。所以...再次,“领域”如何发挥所有这一切?
为了清楚起见......我理解“领域” 在概念上是什么......我只是看不到HTTP客户端在实践中如何使用它。
答案 0 :(得分:6)
我只是不知道HTTP客户端在实践中如何使用它。
当领域保持不变时,浏览器不会要求用户提供凭据。因此,如果您登录到提供某个领域值的http://example.com/ApplicationA
,那么使用相同领域的http://example.com/ApplicationB
可以重复使用用户为应用程序A输入的凭据,因为他们的"规范根URL"是相同的(http://example.com)
,因此浏览器不必再次弹出凭证表单。
浏览器似乎以不同的方式实现了这一点,这取决于URI的哪些部分发生了变化,某些将再次要求提供凭据,即使领域和规范的根URL保持不变。