速懂cookie,session,token

10 篇文章 0 订阅

cookie

浏览器提供的一种能力,可以在每次发起请求前,带上cookie里面的内容(一些key,value值)

分类:

  • 会话级cookie:默认情况,就是会话级cookie,有效时长只有在窗口还打开的时候
  • 持久cookie:在设置一些字段控制的时候,就可以设置cookie的持续时长(比如setMaxAge)

注意:cookie可以是web服务器添加的,原理就是在我们进行某一个请求的时候,如果这个请求携带了一些控制cookie的字段,那么就会使得我们浏览器设置了cookie

并且大小一般只有4kb,并且每个站点最多20条

session

是基于cookie实现的一种解决http无状态的方式

  • 原理: 在我们第一次登录请求时,服务端会开辟一个空间用于存储这次登录的信息session,这个session可以通过sessionID来找到,所以服务器会把sessionID返回给浏览器【自动存储到cookie里面】,然后我们发起下一次请求的时候就自动(通过cookie)上这个sessionID,那么服务器就能识别我们的登录状态了

  • 缺点:由于session是存储在服务器,所以当我们服务器采用了负载均衡的时候,如果我们在A服务器有我们session,当A服务器压力过大,我们的请求被分配到了B服务器,那么B服务器算识别不到我们的sessionID的,因为只有A有我们的session

token

也是一种解决http无状态的方式,是存储了我们用户状态等信息的字符串

在我们第一次发起登录请求的时候,服务器返回给我们一个token字符串,然后这个token字符串由浏览器存储

  • 在我们后续发起请求的时候,我们可以把token带在cookie或者请求体里面
  • 服务器通过解析我们的token,识别我们的状态和信息

优点: 存储在客户端,所以服务器空间压力变小(解析时间压力变大??),由于可以不同存储在cookie,对移动端更友好(cookie是浏览器的机制)

区别

  1. cookie是一种浏览器的机制,session和token是解决http无状态(身份验证)的方式
  2. session存储在cookie中,token可以存储在cookie和响应头里面
  3. session存储在服务器,token存储在客户端
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值