【Http基本认证】

HTTP请求报头: Authorization

HTTP响应报头: WWW-Authenticate

HTTP认证  基于   质询  /回应(  challenge/response)的认证模式。

基本认证 basic authentication   ← HTTP1.0提出的认证方法

    客户端对于每一个realm,通过提供用户名和密码来进行认证的方式。

    包含密码的明文传递

基本认证步骤:

 1. 客户端访问一个受http基本认证保护的资源。

 2. 服务器返回401状态,要求客户端提供用户名和密码进行认证。

  401 Unauthorized

  WWW-Authenticate: Basic realm="WallyWorld"

 3. 客户端将输入的用户名密码用Base64进行编码后,采用非加密的明文方式传送给服务器。

  Authorization: Basic xxxxxxxxxx.

 4. 如果认证成功,则返回相应的资源。如果认证失败,则仍返回401状态,要求重新进行认证。

特记事项:

 1. Http是无状态的,同一个客户端对同一个realm内资源的每一个访问会被要求进行认证。

 2. 客户端通常会缓存用户名和密码,并和authentication realm一起保存,所以,一般不需要你重新输入用户名和密码。

 3. 以非加密的明文方式传输,虽然转换成了不易被人直接识别的字符串,但是无法防止用户名密码被恶意盗用。



 

HTTP的两个官方的认证协议:基本认证和摘要认证

认证的四个步骤:

请求: 客户端发起一条请求;第一条请求没有认证消息;

质询: 服务器对客户端进行质询;返回一条401 Unauthorized响应,并在www-Authenticate首部说明如何以及在哪里进行认证;一般指定对哪个安全域进行认证;

授权:客户端收到401质询,弹出对话框,询问用户名和密码,用户输入用户名和密码后,客户端会用一个冒号将其连接起来,编码成“经过扰码的”Base-64表示形式,然后将其放在Authorization首部中回送;

成功: 服务器对用户名和密码进行解码,验证它们的正确性,然后用一条HTTP 200 OK报文返回所请求的报文;

猜你喜欢

转载自gaojingsong.iteye.com/blog/2406242