Session+Cookie+Token

HTTP协议有个特点 , 那就是无状态或者无记忆 , 无记忆的意思就是当我们多次访问同一个网站时 , 每一次访问都需要和服务器建立连接 , 每发一个请求就连接一次 , 请求和请求之间是没有关系的 . 因此服务器无法识别用户的身份信息 , 就无进行权限管理 . 所以 , 就提供了Session和Cookie机制

1.Session和Cookie

1.1 Session

Session是一种在服务器存储数据的技术 .

当客户端发送请求到服务器端时 , 服务器会查看请求是否携带Cookie , 如果携带Cookie , 那么就会查看是否存在Cookie中的SessionId , 如果存在 , 说明当前客户端和服务器已经建立过连接了 , 所以可以通过SessionId 找到该用户存在服务器端的用户信息 ; 如果没有SessionId , 那么则证明当前用户未建立连接 , 此时服务器端就会为当前用户创建一个Session , 并将SessionId 通过 Set-Cookie头发送给客户端 .

Cookie是一种在客户端浏览器存储数据的技术 .

当客户端第一次向服务器端发送请求时 , 服务器端会为该用户生成一个Session 并将用户信息存储在Session中 , 然后将SessionId 发送给客户端 , 客户端收到Cookie后就会将Cookie存储在浏览器上 . 后续对客户端进行访问时 , 就会携带Cookie , 方便服务器判断用户的登录状态和身份信息等 .

1.3 使用Session和Cookie具体步骤

  1. 客户端发送请求
  2. 服务器响应并设置响应头Set-Cookie , 将SessionId发送给客户端
  3. 客户端发送其他请求携带Cookie
  4. 通过Cookie找到用户信息 , 验证用户已经登录

1.4 具体应用 -- 用户登录判断

对于一些需要登录才能执行的操作 , 如 : 充值 , 消费等 . 如果用户没有登录就直接进行充值 , 那么服务端就无法判断充值的用户的身份信息 , 充值的金额也无法到达用户账户 . 对于这些操作 , 就可以使用Session和Cookie进行登录判断和用户身份信息获取 .

当用户登录时 , 服务器会根据用户提供的账号和密码找到用户的身份信息 , 并为用户创建一个Session , 然后将用户的身份信息存储在Session中 , 之后将SessionId 通过Set-Cookie头发送给客户端 .

用户登录成功后 , 会将Cookie存在浏览器当中 , 之后在进行充值等操作时 , 会在请求中携带Cookie , 那么服务器就可以通过Cookie中的SessionId找到用户 , 然后对用户的账号余额成功增加了

2 Token -- 令牌

由于Session需要在服务器存储用户完整的个人信息 , 所以会占据服务器的存储资源 . 因此又提供了另一种方式识别用户身份信息 -- Token ( 令牌 )

Token是一种在客户端和服务器端传递消息的方式 , 当用户成功登录后 , 服务器端会产生一个Token , 返回给客户端 , 客户端在后续请求中 , 将Token携带在请求中 , 发送给服务器 , 服务器验证Token的正确性 , 从而验证用户的身份信息

2.1 Token的组成 : 标头 + 有效载荷 + 签名

标头 : Token的类型 和 使用的算法

有效载荷 : 用户的部分个人信息

签名 : 通过标头和有效载荷以及密钥加密而成

因此 , 如果Token被修改了前两部分 , 那么就会和签名不一致 , 如果修改了签名 , 就会和前两部分以及密钥加密后的数据不一致 , 因此 , 使用Token可以有效的提高安全性

3. Session , Cookie和Token的对比

相关推荐
微订校园外卖平台几秒前
同城外卖跑腿平台需要服务器吗?交付方式、部署架构与上线核对
服务器·架构·github·外卖系统·本地生活·微订
发量惊人的中年网工2 分钟前
游戏出海服务器选哪个IDC?开服卡顿、延迟抖动的排查与选节点思路
服务器·idc
开开心心_Every3 分钟前
黄金价格软件国内外价格实时监控超方便
运维·服务器·游戏·智能手机·pdf·lua·perl
LMT_Lanmantech6 分钟前
HyperWorks许可:almutil显示Unit满了,数据到底准不准?
运维·服务器·算法
system_error_x7 分钟前
服务器的替代方案:从物理机到云原生的全面对比
运维·服务器·云原生
白帽攻防录18 分钟前
SRC 挖洞:QUIC 协议栈双 RCE,HTTP/3 的新攻击面怎么挖
网络·网络协议·http·网络安全·http/3
墨云安全21 分钟前
AI 漏洞挖掘平台怎么评估?2026 年技术架构与选型要点
网络·人工智能·网络安全·架构·渗透测试
红姐跨境书38 分钟前
TikTok 爬虫实战指南:避开 TikTok 反爬机制的 7个坑
网络
隐擎fox42 分钟前
Linux eBPF 与 XDP 高性能网络出口架构:动态连接追踪、丢包诊断与住宅网关 QoS 调优实战
linux·网络·网络协议·tcp/ip·架构
Multipath7121 小时前
多链路聚合设备:助力智慧农业发展的网络基石——让农田网络不断连,让智能设备不失控
网络·网络协议·5g·udp·无人机