HTTP 的认证机制
基本认证、摘要认证
一、基本认证
用
BASE64
算法加密后的字符串放在
HTTP Request
中的
Header Authorization
中发送给服务端, 这种方式叫HTTP基本认证(Basic Authentication)
Basic
认证是一种较为简单的HTTP认证方式,客户端通过明文(Base64编码格式)传输用户名和密码到服务端进行认证,通常需要配合HTTPS来保证信息传输的安全。
HTTPBasic
是由
HTTP
协议定义的最基础的认证方式。每次请求时,在请求头
Authorization
参数中附带用户/密码的
base64
编码。这个方式并不安全,不适合在web项目中使用。但它是一些现代主流认证的基础,而且在spring security的oauth中,内部认证默认就是用的
HTTPBasic
。
请求流程
当
request
第一次到达服务器时,服务器没有认证的信息,服务器会返回一个401 Unauthozied给客户端。
认证之后将认证信息放在
session
,以后在
session
有效期内就不用再认证了
二、请求原理
我们可以看到在
WWW-Authenticate
这个
Header
里面有
Basic
:说明需要基本认证,
realm
:说明客户端需要输入这个安全区的用户名和密码。
浏览器弹出输入用户名/密码的弹窗,并将其拼接成“
用户名:密码”
格式,中间是一个冒号,再用base64编码成xxx,然后在请求头中附加Authorization:Basic xxx,发给后台认证。后台需要用base64解码xxx,再认证用户名/密码。
三、postman请求方式
1、
base64
加密
格式:
用户名:密码
例如
:账号:admin;密码:123
base64
加密:
YWRtaW46MTIz
使用
postman
模拟请求 :
value
值:Basic YWRtaW46MTIz
二、账号密码
四、注销
1、关闭浏览器销毁
2、配置错的Authorization