HTTP协议的基本认证

对于资源的权限认证,是由服务器给到浏览器一种输入用户名和密码的方式。

基本流程是客户端到浏览器发起了一个请求。服务器告诉客户端你需要输入用户名和密码。

告诉的方式通过传递www-authenticate这样一个头部,这个头部里面有相关的消息,返回码是401,当浏览器受到这样的响应之后就会弹出对话框,几乎所有的浏览器都实现了这样一个功能,那么就可以在对话框中输入用户名和密码。

这个用户名密码会以base64位的编码方式传递给服务器。服务器进行校验,校验通过了就会返回200,不通过推荐返回403。

传输都是明文的,都是base64,这样就可以反推回原来的用户名和密码。通常做验证的时候应该基于TLS和SSL,否则就会有安全问题,密码就会被别人看到了。 

传入的头部Authorization,里面是用户名和密码。实际中采用的是用户名:密码的格式,按照dd:ee格式编码之后得到新的token表示用户名和密码。

这里可以看到做了编码和解码。

如果是代理服务器认证就会传递 Proxy-Authorization = credentials,和上面是相似的。

认证响应回返回www-authentoicate,在challenge中包含两个部分,第一个是蓝色的部分auth-scheme,告诉浏览器基于基本认证www_authenticate:Basic realm="test auth_basic",然后弹出对话框。

猜你喜欢

转载自blog.csdn.net/qq_34556414/article/details/131498637
今日推荐