1.BASIC 认证

BASIC 认证(基本认证)是从 HTTP/1.0 就定义的认证方式。BASIC认证直接发送明文密码,不安全。BASIC 认证使用上不够便捷灵活,且达不到多数 Web 网站期望的安 全性等级,因此它并不常用。

2.DIGEST 认证

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

3.SSL 客户端认证

SSL 客户端认证是借由 HTTPS 的客户端证书完成认证的方式。凭借客户端证书(在 HTTPS 一章已讲解)认证,服务器可确认访问是否来自已登录的客户端。

4.Cookie和Session认证

前面三种方式几乎不怎么用,Web中的认证主要是利用 Cookie 来管理 Session(会话)。

这其实是基于表单的认证,基于表单认证本身是通过服务器端的 Web 应用,将客户端发送过来 的用户 ID 和密码与之前登录过的信息做匹配来进行认证的。下面是具体步骤:

  • 客户端通过表单的POST方法将用户名和密码提交给服务端。
  • 服务器会通过给客户端的浏览器设置Cookie的形式发放用以识别用户的 Session ID,同时将SessionID与用户的信息保存在自己的服务端。 Session ID其实时随机字符串。为减轻跨站脚本攻击(XSS)造成的损失,建议事先在 Cookie 内加上 httponly 属性。
  • 客户端再次访问服务端的时候会携带服务端给他的SessionID信息
  • 服务端拿客户端传来的SessionID与自己保存的进行比对,比对成功既是认证成功