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来解决,将敏感信息存储在服务端。

   例如:超市的电子储物柜在使用时需要开柜拿票,回头拿着票来取物。

此时便可以这样理解
    超市:服务端
    你:客户端(二维码小票就是开箱的凭证)

  真正的数据存储在服务端的电子柜里,而你拿的只是凭证,且凭证是唯一的,一旦丢失,从服务器角度将便不可找回。

   

.

原文地址:https://www.cnblogs.com/jianxian/p/12298236.html