HTTP知识点(3)– 认证
图片和知识点来自《图解HTTP》
HTTP/1.1使用的认证方式主要有如下:BASIC认证/摘要认证/SSL客户端认证/基于表单认证(FormBase)
Basic认证:
客户端先发一个GET请求,服务器返回401,客户端于是将用户ID和密码用冒号连接后以Base64编码,放到Authorization请求头里发送。base64可逆,所以相当于明文传输。
摘要认证:

DIGEST 认证提供防止密码被窃听的保护机制(响应码的计算是MD5,不可逆),但并不存在防止用户伪装的保护机制。
SSL客户端认证:
SSL认证可以通过证书,拦截“密码被盗”场景。
服务端接到请求发送certificate request -> 客户端发送客户端证书 -> 服务端验证证书,通过后使用其中的密钥进行https传输。
SSL认证一般与基于表单的认证组合使用,即“双因子认证”。 SSL证书确认客户端是真的,表单认证确认是真的用户。
基于表单的认证:
用户自己实现,没有统一的标准。一般使用cookie来管理session.
