详解HTTP的几种认证方式

1.BASIC认证

Web服务器与通信客户端之间进行的认证方式(用户用户名和密码明文传输,不常用)


2.DIGEST认证

DIGEST认证同样使用质询/响应的方式,但不会像BASIC认证那样直接发送明文密码(并不存在防止用户伪装的保护机制,不常用)

所谓质询响应方式是指,一开始一方会先发送认证要求给另一方,接着使用从另一方那接收到的质询码计算生成响应码。最后将响应码返回给对方进行认证的方式


3.SSL客户端认证

SSL客户端认证是借由HTTPS的客户端证书完成认证的方式。凭借客户端证书认证,服务器可确认访问是否来自已登录的客户端(安全性过高,只在银行等重要机构使用)

  1. 接收到需要认证资源的请求,服务器会发送Certificate Request报文,要求客户端提供客户端证书
  2. 用户选择将发送的客户端证书后,客户端会把客户端证书信息以Client Certificate报文方式发送给服务器
  3. 服务器验证客户端证书验证通过后方可领取证书内客户端的公开密钥,然后开始HTTPS加密通信

SSL客户端认证采用双因素认证:

SSL客户端认证不会仅依靠证书完成认证,一般会和基于表单认证组合形成一种双因素认证

第一个认证因素的SSL客户端证书用来认证客户端计算机,另一个认证因素的密码则用来确定这是用户本人的行为


4.基于表单认证

客户端会向服务器上的Web应用程序发送登录信息,按登录信息的验证结果认证(如今的Web应用最常用的一个认证方式)

经验分享 程序员 微信小程序 职场和发展