美文网首页
session,cookie和token的区别

session,cookie和token的区别

作者: 笑_0627 | 来源:发表于2020-06-02 16:22 被阅读0次
    cookie数据存放在客户端的浏览器上,session数据放在服务器上。

    下面来举个老师经常说的例子来区分session和cookie:

    我们把超市会员卡,比作session

    超市会员卡                                                            session

    发卡者---超市管理员                                            创建者--服务器

    它是一张会员卡                                                    它是一个session对象

    它有唯一的卡号                                                    它有唯一的sessionID

    超市规定,这张卡n天不用就会失效                      开发人员设置,(有效期为60分钟,30分钟等)

    超市会员卡,会记录在超市本子上或某软件上        session信息会存放在服务器中或者数据库中

    超市本子损坏,或软件损坏,卡的信息就不见了    服务器重启或数据库清空,session也就没有了

    超市提供注销会员卡的业务                                    开发人员可以提供注销session的功能

    用户凭借自身身份来申请一个会员卡                      用户登录服务器后,服务器便会生成一个session

    会员卡办理好后,便会通过各种途径交到用户手中    用户登录成功后,服务器便会通过响应头,把sessionID传递给客户端

    客户收到卡后,会把他放置到某个位置                      客户端拿到这个sessionID后,会把sessionID放到浏览器的【cookie】中

    下次来买东西可以直接带会员卡进行消费                  下次登录时,可以把sessionID通过【请求头】携带给服务器

    超市人员会检查你的卡是否有效                                  服务器判断客户端提供的sessionID是否【有效】

    你的家人拿你的卡去消费,是可以的                          小偷拿了你的sessionID去使用,也是可以的

    简要概括:

    用户登录----服务器便会创建一个sessionID,并返给客户端-----客户端接收到这个sessionID后,把它保存到浏览器的cookie中

    1.用户登录成功后会立马创建一个session,并通过【响应头】中set--cookie属性,把session返回给客户端

    2.浏览器接收到之后,把响应头中的set--cookie储存起来,储存到浏览器 的cookie中

    3.之后浏览器每次发送请求时,都会把站点中的全部cookie通过【请求头】发送给服务器

    cookie和session是如何配合来实现登录的:

    1.用户一登陆,服务器便会生成一个session对象,并通过【响应头】中的set-cookie 把sessionID 发送给浏览器

    2。浏览器收到sessionID会立马储存在cookie中,方便下次使用

    3.服务器会根据客户端发来的sessionID来判断其有效性,如果失效则不能进行访问

    用户注销或退出登录时,服务器会把sessionID置空,并返回一个空值给客户端

    如果客户端通过set--cookie拿到了一个空值sessionID,便会删除sessionID

    cookie的特点:

    1.cookies是分站点的,各个站点之间是独立的

    2.浏览器中的cookie是储存在浏览器的某个位置中的

    3.浏览器通过set-cookie参数,对客户端的cookie进行管理,每次访问时,都需要把cookie发送给服务器

    4.每个站点的cookie个数不超过50个,大小不超过4kb

    session的特点:

    1.session 是一个对象,是服务器产生的,保存在服务器的内存中的

    2.session有自己的管理机制,如session的产生,超时,销毁等

    3.sessionID是session中的一个对象,并且是唯一的,不会重复的

    Token特点:

    Token 也是由服务器产生的,存在服务器的内存或硬盘中

    【用Token 来实现登录】

    开发提供一个获取Token接口,根据用户名+密码,获取一个Token值

    返回一个Token (字符串)

    相关文章

      网友评论

          本文标题:session,cookie和token的区别

          本文链接:https://www.haomeiwen.com/subject/bsouzhtx.html