当前位置: 首页 > news >正文

速懂cookie,session,token

文章目录

  • cookie
  • session
  • token
  • 区别

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存储在客户端
http://www.lryc.cn/news/34708.html

相关文章:

  • javaEE初阶 — HTML 中的常见标签
  • MySQL慢查询
  • tensorflow【import transformers 报错】
  • JMU软件20 计算机网络复习
  • Java基础之《dubbo(1)—dubbo基础入门》
  • HTML注入的一种攻击思路(超链接替换为点击验证,现在常见)
  • Redis-6集群
  • Spring Cloud学习笔记:基础知识
  • 农产品销售系统/商城,可运行
  • 【Java开发】JUC进阶 05:函数式接口、ForkJoin
  • Nginx支持quic协议
  • 笔记 - Java 内存结构与模型
  • C#基础教程12 数组
  • Android中级——屏幕和绘图
  • Linux - 第6节 - 动态库和静态库
  • 【Java学习笔记】12.Character 类及String 类
  • 【C++修炼之路】26.C++11(语法糖)
  • KD610精密油介损体积电阻率测试仪
  • 快速了解原码、反码、补码和位运算
  • 算法的复杂度介绍
  • 教你如何搭建店铺—收支管理系统,demo可分享
  • java性能分析-堆内存最佳实践-堆分析
  • 3月8号作业
  • Flink相关介绍
  • Java 8 排序
  • Blazor_WASM之4:路由
  • 对Vue响应式的理解
  • 磁盘阵列Raid探讨
  • 基于MyBatis依次、批量、分页增删改查
  • Tomcat源码分析-Session源码解析