
基本身份验证是HTTP中相对简单的身份验证方法。因为简单,所以不是很安全,但还是很常见。本文详细阐述了基本验证的整个过程和基本原理。
基本验证步骤:
在整个HTTP协议通信过程中,HTTP协议定义了基本验证的全过程,以允许HTTPWEB服务器向WEB浏览器发出客户端请求。当客户端向HTTPserviceprojectserver请求数据信息时,如果客户端未通过验证,HTTPwebserver将按照基本验证的全过程对客户端的用户名和登录密码进行认证,以决定客户端是否合理合法。
客户端收到HTTPweb服务器的认证规则后,会提醒客户端输入用户名和登录密码,然后用BASE64数据加密用户名和登录密码。加密数据的机密性将被添加到所请求信息的内容中。比如,当用户名为admin,登录密码为123456时,客户端会将用户名和登录密码用“:”拼起来,为了保密,用BASE64数据加密拼出来的字符串数组,每次都请求数据。
HTTP服务器每次收到请求包后,根据协议获取客户端的附加客户信息(用BASE64数据加密的用户名和登录密码),取消请求包,认证用户名和登录密码,如果用户名和登录密码合适,根据客户端的请求返回客户端的必要数据信息;否则,返回错误代码或要求客户端再次显示用户名和登录密码。
详细讲解基本验证的全过程:
1.客户端请求web服务器浏览维护的数据信息。所请求的内容可以是网页或其他MIME类型。此时,假设客户端未通过身份验证,客户端向web服务器发出以下请求:
get/index.htmlHTTP/1.0
Host:www.favccxx.com
2.网络服务器向客户端推送认证请求代码401,缺失对象的数据信息主要如下:
HTTP/1.0401未授权的
服务器:SokEvo/1.0
WWW-Authenticate:Basicrealm="favcxx.com"
内容类型:text/html
内容长度:xxx
3.当满足http1.0或1.1标准的客户端(如IE、FIREFOX)收到返回值401时,会d出登录对话框,要求客户端键入用户名和登录密码。
4.客户输入用户名和登录密码后,用户名和登录密码用BASE64加密算法数据加密,保密性放入之前的请求信息内容,那么客户端推送的第一条请求信息内容就变成了以下内容:
get/index.htmlHTTP/1.0
Host:www.favccxx.com
授权:基本xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
注:xxxx...表示数据加密后的用户名和登录密码,authorization=base64.encode("admin:password");
5.网络服务器收到请求信息的内容后,记下并破译授权字段名后的客户信息,用客户数据库查询对破译的用户名和登录密码进行认证。如果用户名和登录密码正确,网络服务器将根据请求向客户端发送所请求的资源。
验证BASIC的优点和缺点
优势:
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)