后续请求的基本HTTP身份验证

san*_*han 5 client http basic-authentication server

下图描述了基本的HTTP身份验证。客户端请求/family资源,并要求其标识自己。它可以,现在可以访问了/family。然后,客户还要求获得/family/photos/kids家庭领域中的资源。

客户端已经为/family资源标识了自己,但也没有为标识自己/family/photos/kids。它们在同一领域中,但是服务器不知道同一客户端发出了请求。还是呢?服务器如何知道该特定客户端也被允许/family/photos/kids在后续请求中访问?用户认证后,密码和用户名是否在每个请求上发送?客户是否通过弹出窗口要求他/她提出的每个请求?首次验证时是否设置了cookie?

在此处输入图片说明

ped*_*ofb 5

基本身份验证需要客户端发送的标头。没有 cookie 或服务器会话

当客户端请求资源时,发送 Authorization 头

GET /family
Authorization: Basic token
Run Code Online (Sandbox Code Playgroud)

其中令牌是base64(用户名:密码)。用户名后跟 ':' 和以 base 64 编码的密码

如果您从浏览器请求受保护的资源,例如 GET 请求,并且您不提供标头,则浏览器会显示身份验证表单并记住它以供同一域中的后续请求使用