由重置密码谈谈Http无状态,cookie,session和token

Http无状态性

http的无状态性指的是,客户端做了什么事,处于什么状态,服务端事不知道的。
有一个小场景:
我们在一个商城能进行登录操作,服务端返回我们的登录状态,除密码之外的个人信息。而我们只有在登录的时候才能使用购物车,但是使用购物车的时候,我们向服务端发送的请求中携带有我们登录所需的消息(也就是账号密码),否则,服务端是不知道我们是谁,谁在使用哪个购物车的。

Cookie

cookie是由服务端response给客户端时候携带,保存在客户端,由浏览器保管,以后客户端的每次访问都会带上这个cookie
记住密码的实现:实现方法是把登录信息如账号、密码等保存在Cookie中,并控制Cookie的有效期,下次访问时再验证Cookie中的登录信息即可。

保存登录信息的多种方案
方案一:最直接的是把用户名与密码都保持到Cookie中,下次访问时检查Cookie中的用户名与密码,与数据库比较。这是一种比较危险的选择,一般不把密码等重要信息保存到Cookie中。

方案二:是把密码加密后保存到Cookie中,下次访问时解密并与数据库比较。这种方案略微安全一些。如果不希望保存密码,还可以把登录的时间戳保存到Cookie与数据库中,到时只验证用户名与登录时间戳就可以了。

方案三:只在登录时查询一次数据库,以后访问验证登录信息时不再查询数据库。实现方式是把账号按照一定的规则加密后,连同账号一块保存到Cookie中。下次访问时只需要判断账号的加密规则是否正确即可。

Cookie具有不可跨域名性,浏览器访问百度时候,不会带上腾讯的cookie,

Session

和session差不多,但是保存在服务端,由服务器保管,

Token

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值