身份验证是判断客户端是否有资格访问资源的过程。HTTP 协议支持将身份验证作为协商访问安全资源的一种方式。
来自客户端的初始请求通常是匿名请求,不包含任何身份验证信息。 HTTP 服务器应用程序可以拒绝匿名请求,而同时指示必须进行身份验证。
服务器应用程序发送 WWW-Authentication
头来指示受支持的身份验证方案。
HTTP/1.1 使用认证方式如下:
- BASIC 认证(基本认证)
- DIGEST 认证(摘要认证)
- SSL 客户端认证
- FormBase 认证(基于表单认证)
BASIC 认证
BASIC 认证
是从 HTTP/1.0 就定义的认证方式,其主要流程主要分为下面3步:
- 当客户端请求的资源需要 BASIC 认证,服务器会随状态码
401 Authorization Required
,返回带WWW-Authenticate
首部字段的响应; - 客户端接收到 401 状态码后,为了通过认证,需要将用户 ID 及密码发给服务器。发送的内容是由用户 ID 和密码构成,两者中间以
:
连接后,再经过 Base64 编码处理; - 接收到包含首部字段
Authorization
请求的服务器,会对认证信息的正确性进行验证。如验证通过,则返回一条包含Request-URI
资源的响应。