node之cookie和session对比
(1)session作用
记录登录状态
接下来结合几个例子分析下session和cookie的区别
(2)cookie场景(小纸条)
例如,老师给学生发苹果,学生领完苹果后,背后会被贴条标记,表示已经领过苹果。
需求:领过苹果的同学不能再领了... ...,但人数过多,老师记不清,所以只能你自己记住你自己
之所以有这样的需求,因为HTTP协议是无状态协议,HTTP无状态协议,是指协议对于事务处理没有记忆能力。
万一领过苹果的学生再次来领取,老师便可以根据背后的贴条做出判断。
重点:标记在学生自己身上,即自己记住自己.cookie便是保存在客户端本地。
cookie保存客户端本地,一般用来保存不太敏感的数据。但不能用来保存用户的登录状态。
因为登录状态一般用来鉴定权限,例如爱奇艺VIP,如果把登录状态使用cookie保存在客户端,例如isVIP:true,则容易在客户端进行伪造... ...
cookie一般用来记住用户名、购物车数据等等... ...
对于敏感信息,则推荐使用session存储在服务端
(3)无状态
所谓http是无状态协议,言外之意是说http协议没法保存客户机信息,也就没法区分每次请求的不同之处。关于http无状态阻碍了交互式应用程序的实现。
比如记录用户浏览哪些网页、判断用户是否拥有权限访问等。于是,两种用于保持HTTP状态的技术就应运而生了,一个是Cookie,而另一个则是Session。
(4)session(超市储物柜)
针对于cookie不能存储敏感信息的缺点,这里我们使用session来解决,将敏感信息存储在服务端。
例如:超市的电子储物柜在使用时需要开柜拿票,回头拿着票来取物。
此时便可以这样理解
超市:服务端
你:客户端(二维码小票就是开箱的凭证)
真正的数据存储在服务端的电子柜里,而你拿的只是凭证,且凭证是唯一的,一旦丢失,从服务器角度将便不可找回。
.