下图描述了基本的HTTP身份验证。客户端请求/family
资源,并要求其标识自己。它确实可以访问/family
。然后,客户端还会询问家庭领域中的/family/photos/kids
资源。
客户已经为/family
资源标识了自己,但/family/photos/kids
也没有。它们处于同一领域,但服务器不知道同一客户端发出了请求。或者是吗?服务器如何知道此特定客户端也可以在后续请求中访问/family/photos/kids
?用户通过身份验证后,每次请求都会发送密码和用户名吗?是否通过弹出窗口要求客户提出他/她所做的每一个请求?是否在首次认证时设置了cookie?
答案 0 :(得分:2)
基本身份验证需要客户端发送的标头。没有cookie或服务器会话
当客户端请求资源时,发送授权标头
GET /family
Authorization: Basic token
其中token是base64(用户名:密码)。用户名后跟':'和密码以base 64编码
如果您从浏览器请求受保护的资源(例如GET请求),并且您没有提供标头,则浏览器会显示autenticathion表单并记住它以用于同一域中的后续请求