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

cookie, session and token

1. Cookie

定义:Cookie 是一种由服务器发送到客户端浏览器的小数据文件,用于存储一些信息,例如用户的登录状态、偏好设置等。

作用

  • 存储信息:浏览器会在本地存储 Cookie 文件,当用户访问同一网站时,浏览器会将这些 Cookie 文件发送回服务器。
  • 跟踪会话:可以用来跟踪用户的会话状态,例如记住用户的登录状态。

工作原理

  1. 服务器向浏览器发送一个包含 Cookie 的 HTTP 响应头。
  2. 浏览器保存这个 Cookie,并在每次后续的请求中将它发送回服务器。
  3. 服务器可以读取 Cookie 中的内容来识别用户或存储用户的偏好设置。

2. Session

定义:Session 是一种在服务器端存储用户会话信息的机制。与 Cookie 不同,Session 的数据存储在服务器上,通常与一个唯一的 Session ID 关联,这个 ID 存储在客户端的 Cookie 中。

作用

  • 存储会话状态:用于存储用户的会话状态和数据,例如购物车内容、用户登录信息等。
  • 安全性:由于实际数据存储在服务器端,Session 相对较为安全,不容易被篡改。

工作原理

  1. 用户访问网站时,服务器创建一个 Session,并生成一个唯一的 Session ID。
  2. 服务器将 Session ID 发送到客户端浏览器,并存储在 Cookie 中。
  3. 用户的每个请求都带上这个 Session ID,服务器通过这个 ID 查找对应的会话数据。
  4. 服务器根据 Session 数据提供个性化的响应。

3. Token

定义:Token 是一种用于身份验证和授权的凭证,通常是一个加密的字符串或令牌。它常用于无状态的身份验证机制,比如 JSON Web Token (JWT)。

作用

  • 身份验证:用于验证用户的身份并授权其访问特定资源。
  • 无状态:与 Session 不同,Token 是无状态的,不需要在服务器端存储会话数据。

工作原理

  1. 用户登录后,服务器生成一个 Token,并将其发送给客户端。
  2. 客户端存储 Token(通常存储在本地存储或 Cookie 中)。
  3. 每次请求时,客户端在 HTTP 头部或请求参数中附带 Token。
  4. 服务器解码并验证 Token,确认用户的身份和权限。

总结

  • Cookie:用于在客户端存储少量数据,主要用于跟踪用户会话。
  • Session:服务器端存储会话数据,通过唯一的 Session ID 与客户端 Cookie 关联。
  • Token:用于无状态的身份验证和授权,通常是加密的字符串。

在现代 Web 应用中,Token 和 Session 常常用来处理用户认证和授权,而 Cookie 通常用于存储少量的数据和状态信息。

Cookie 本身只是一个存储机制,它存储数据而不进行验证。身份验证通常依赖于 Session 或 Token:

  • Session:通过在服务器端存储用户数据,使用 Cookie 存储 Session ID 来实现身份验证。
  • Token:通过将加密的 Token 存储在 Cookie 或本地存储中,服务器通过解码和验证 Token 来实现身份验证。

http://www.kler.cn/a/280345.html

相关文章:

  • Python脚本阿里云服务监控脚本
  • 93.WEB渗透测试-信息收集-Google语法(7)
  • 【YOLO系列】目标检测简介
  • 谈到这个痛点,写C的和不写C的码农都沉默了
  • Unity项目增加字体裁剪
  • spingboot实现常规增删改查
  • 如何使用ssm实现亿互游在线平台设计与开发+vue
  • QT opencv(显示图片和视频)
  • 电脑浏览器打不开部分网页
  • ARP(地址解析协议)详解
  • mysql数据库----简单认识库的操作
  • 什么是死锁
  • 大模型从入门到精通—— LLM 应用评估(二)
  • 【C++ 面试 - 面向对象】每日 3 题(七)
  • RabbitMQ中的死信交换机?(RabbitMQ延迟队列有了解过吗)
  • 中庸就是五五开,各打五十大板吗
  • 8.28-回顾+容器与主机之间的通信+跨主机容器之间的通信
  • 如何监控Eureka集群:Prometheus与Grafana的监控集成
  • 音频分割软件有什么?最方便的音频分割软件分享给你
  • client网络模块的开发和client与server端的部分联动调试