Cookie、Session以及Token的区别

Cookei、Session以及Token总的来说都是为了实现客户端访问服务器数据而利用的一种手段,可以把服务器数据看成是密码箱,而它们是三种不同的钥匙。

一、定义

1.Cookie

客户端第一次访问服务器时,服务器返回cookie给客户端A,客户端A存储cookie,下次客户端直接带着cookie即可访问服务器数据。

这里你可以把服务器理解为银行,客户端就是银行客户,cookie相当于存折,客户第一次来银行存钱时会给客户发放存折,客户通过存折来银行取钱,也就是取数据

2.Session

这里的session其实就是相当于存放在服务器中的数据。客户端第一次访问服务器时,服务器会给客户端发送一个cookie,cookie中包含着sessionId,当下一次客户端带着cookie来时服务器就会根据cookie中的sessionId来返回sesssion中的数据。

 这里的sessionId相当于存折中的账户,session相当于存在银行中的钱

3.Token

在实际的项目中一般会使用多个服务器,如果使用session存储数据就会出现以下两个问题(session共享问题)

  • 每台服务器中都有完整的一份session数据,服务器压力过大。
  • session拷贝数据时,可能会出现延迟

因此在实际的项目中一般会选择利用redis来替代session来存储数据,因为redis数据本文就是共享的

由于redis是以键值对的方式存储数据,我们将数据存储在value中,而key是共享的,因此key必须满足唯一性并且方便携带。如果我们将key设置为手机号会将手机号这样的敏感数据放在redis中,会有泄露隐私的风险,因此我们会在后台随机生成一个随机串Token,将它设置为key用来存储数据。

客户端首次访问,服务器给客户端一个token,下次来访问服务器时,客户端带着token即可得到数据。

二、区别

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值