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

Cookie、Session、Token的关系和区别

关系

  • Session与Cookie:Session通常依赖于Cookie来工作。当服务器为客户端创建一个Session时,它会在服务器上存储与客户端相关的信息,并将一个唯一的SessionID通过Cookie发送给客户端。客户端在后续的请求中会携带这个Cookie(包含SessionID),以便服务器能够识别并恢复与该客户端的Session。
  • Token与Session/Cookie:Token也是一种身份验证机制,但它不依赖于服务器端的Session或客户端的Cookie。相反,Token本身包含了所有必要的用户信息和验证信息,客户端在每次请求时都需要将Token发送给服务器进行验证。

区别

Cookie
  • 存储位置:客户端。
  • 内容:通常以字符串的形式存储一些数据,如用户ID、SessionID等。
  • 特点
    • 按照域名存储。
    • 存储大小有限制,通常约为4KB或50条左右。
    • 具有时效性,可以手动设置。
    • 请求自动携带,即当客户端向服务器发送请求时,会自动将Cookie包含在请求头中。
Session
  • 存储位置:服务器端。
  • 内容:可以理解为一个状态列表或用户信息档案表,包含用户的认证信息和登录状态等。
  • 特点
    • 依赖于Cookie或URL重写来传递SessionID。
    • 当同时登录的用户数量较多时,可能导致服务器查询变慢。
    • 用于解决HTTP协议无状态的问题。
Token
  • 存储位置:客户端(通常在localStorage、sessionStorage或Cookie中)。
  • 内容:通常是一个包含用户信息、过期时间和签名的字符串。
  • 特点
    • 无状态,即不依赖于服务器端的Session。
    • 加密存储用户信息,安全性更高。
    • 需要开发者手动添加和验证。
    • 在区块链技术中,Token可以代表数字资产、实物资产、虚拟资产或特定权益等。

总结

  • Cookie 主要用于在客户端存储少量数据,并自动包含在请求头中发送给服务器。
  • Session 存储在服务器端,用于跟踪用户状态,并依赖于Cookie或URL重写来传递SessionID。
  • Token 是一种无状态的身份验证机制,客户端在请求时携带Token进行身份验证,具有更高的安全性和灵活性。
http://www.lryc.cn/news/374759.html

相关文章:

  • Windows 11 中安装 Docker Desktop 并安装镜像
  • 深入剖析Java线程池之“newWorkStealingPool“
  • 《跟我一起学“网络安全”》——安全设备
  • 猜测Tomcat如何实现WebSocket协议
  • uniApp @input事件更改输入框值,值改变了但是页面没更新新的值
  • 两行css 实现瀑布流
  • Centos7.9部署单节点K8S环境
  • 【CV】stable diffusion初步理解
  • 足底筋膜炎最好的恢复办法
  • Fiddler抓包工具介绍
  • 知乎号开始运营了,宣传一波
  • Go 基础丨切片 slice
  • 哪个牌子充电宝好用?精选四大热门款充电宝品牌!公认好用
  • WPF/C#:如何将数据分组显示
  • leetcode 200 岛屿数量
  • ​1:25万基础电子地图(江西版)
  • 【RabbitMQ】初识 RabbitMQ
  • Qt QListView自定义树状导航控件
  • Java 数组的全面解析与应用
  • Thinkphp起名网宝宝起名网站源码
  • 【解决方案】【最佳实践】React高阶组件中Refs 不会被传递的问题
  • SRAM和DRAM
  • 浅析Spring中Async注解底层异步线程池原理
  • sqli-labs 靶场 less-7 第七关详解:OUTFILE注入与配置
  • AIGC新秀亮相,哪款大模型产品最得你心?
  • RabbitMQ消息的可靠传输和防止消息丢失
  • .net8系列-图文并茂手把手教你使用Nlog记录.net日志
  • 课时158:脚本发布_简单脚本_远程执行
  • 3dmax2025能用云渲染吗?2025最新云渲染渲染100使用方法
  • 从零开始学GeoServer源码(一)(搭建开发环境Win10+IDEA23.3.5+jdk11+geoserver2.24.x)