Session认证机制

服务器端的无状态性是什么?
客户端的每次请求都是独立的,服务端不会主动保留每次HTTP的请求状态。
类似于超市的收银员不会根据五官而记住每个结账的顾客。

如何突破HTTP无状态性的限制?
在现实生活中,结账的时候出示会员卡,在web开发中会员卡就是指cookie,发送cookie就可以HTTP无状态性的限制。

什么是cookie?


cookie

域名独立:不同的域名有不同的cookie,不同域名下的cookie不能相互访问;
自动发送:每当客户端发起请求时,会自动把当前域名下未过期的cookie发送到服务器;
过期时限:每个cookie都有时限,过期了就不发送了;


百度的cookie

cookie在身份认证中的流程
客户端第一次请求登陆——服务器通过响应头发送身份认证的cookie——客户端再次请求登陆——浏览器自动把cookie通过请求头发送给服务器——服务器即可验明用户身份

cookie不具备安全性,浏览器也提供了读取cookie的api接口,所以千万不能用cookie存储重要信息,用户名密码等;

提高身份认证的安全性
发送cookie后,服务器端会自动核实信息,就像去超市出示会员卡,收银员要刷卡认证一样,这个“会员卡+刷卡认证”就是session认证机制的精髓;

总结:session认证机制就是服务器通过客户端的cookie来认证客户端身份。

session工作原理:
1、客户端提交登陆请求,把账号密码提交到服务器验证;
2、服务器验证通过,在服务器开辟内存记录人的信息,生成cookie字符串,通过响应的形式发送给客户端;
3、客户端收到cookie,保存起来;
4、客户端再次发起请求,通过请求头把所有可用的cookie发送给服务器端;
5、服务器端收到cookie后从内存中查找对应信息,找到则证明用户验证成功,针对用户生成特定页面响应给客户端;
6、注意:敏感重要的信息是存在服务器的内存中,不会出现在cookie中;

你可能感兴趣的:(Session认证机制)