Session和token的区别

Session和token的区别在于:Session是存放在服务器端的可以保存在内存、数据库、NoSQL中,而Token是放在客户端存储的,采用了时间换空间策略,它也是无状态的,所以在分布式环境中应用广泛。

Session和token的区别-Worktile社区

Session和Token机制原理上差不多,都是用户身份验证的一种识别手段,它们都有过期时间的限制,但两者又有一些不同的地方。

Session是存放在服务器端的,可以保存在:内存、数据库、NoSQL中。它采用空间换时间的策略来进行身份识别,若Session没有持久化落地存储,一旦服务器重启,Session数据会丢失。

Token是放在客户端存储的,采用了时间换空间策略,它也是无状态的,所以在分布式环境中应用广泛。

Session是存储在服务器端的,当浏览器名列前茅次请求Web服务器,服务器会产生一个Session存放在服务器里(可持久化到数据库中),然后通过响应头的方式将SessionID返回给浏览器写入到Cookie中,浏览器下次请求就会将SessiondID以Cookie形式传递给服务器端,服务器端获取SessionID后再去寻找对应的Session。如果找到了则代表用户不是名列前茅次访问,也就记住了用户。

但需要注意的是,若服务器做了负载均衡,用户的下一次请求可能会被定向到其它服务器节点,若那台节点上没有用户的Session信息,就会导致会话验证失败。所以Session默认机制下是不适合分布式部署的。

Token我们一般称为令牌,一般通过MD5、SHA算法将密钥、公钥、时间戳等元素加密产生的加密字符串。

浏览器访问Web服务器后认证成功后生成Token并返回给客户端,客户端浏览器后续的请求都会把这个Token带到服务器端去验证,以此判定请求是否合法。

延伸阅读:

什么是Session?

Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的优选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在Session对象中。有关使用Session 对象的详细信息,请参阅“ASP应用程序”部分的“管理会话”。注意会话状态仅在支持cookie的浏览器中保留。

为了满足实时远程监测系统的需求,服务器需要实时监测客户端的连接状态。为此利用ICE中间件的优点设计了一种基于面向对象ICE中间件自定义Session机制的解决方案。

文章标题:Session和token的区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/36432

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年1月31日 下午9:56
下一篇 2023年1月31日 下午9:57

相关推荐

  • 如何管理好高速项目部工作

    管理好高速项目部工作是一项极其复杂但又极为重要的任务,它要求项目管理者具备强大的组织、协调、沟通以及决策能力。要想成功管理高速项目部,关键在于:严格的项目计划和跟踪、高效的团队协作、有效的风险管理、明智的资源分配、以及及时的沟通与反馈。 其中,严格的项目计划和跟踪尤为重要,它涉及到高速项目成功的基石…

    2024年4月10日
    6200
  • DevOps与自动化日志管理的联系

    DevOps的实践强调了快速迭代与自动化,而自动化日志管理则是确保系统健康和高效率运行的关键组成部分。在DevOps领域,日志管理的自动化可以提供1、实时监控与告警;2、故障排查与性能分析;3、安全和遵从性保障;4、用户行为和业务洞察。特别地,实时监控与告警功能使得团队能够即刻响应可能对系统造成影响…

    2024年1月4日
    22900
  • 研发项目的敏捷化管理

    研发项目敏捷化管理的关键在于快速响应变化、提升交付效率、确保产品质量和持续改进过程。这包括四个方面:1、短周期迭代,允许项目团队快速地对反馈进行响应和更改;2、跨功能协作,团队成员来自不同的职能领域,共同协作确保项目的多角度需求得到满足;3、客户参与度高,让客户深入参与产品开发过程中,以确保产品功能…

    2024年1月10日
    20400
  • 程序编译过程中的分词与词法分析各表示什么

    分词和词法分析是程序编译过程中非常重要的两个步骤。分词将源代码转化为词法单元序列,词法分析将词法单元序列转化为语法单元序列。正确地进行分词和词法分析对于后续的语法分析和代码生成都非常关键,因此需要仔细地进行处理和调试。 分词 分词是将程序源代码分解成一个个词素的过程。词素是程序代码中的最小语义单位,…

    2023年2月28日
    48500
  • JAVA中线程同步和io同步的区别

    JAVA中线程同步和io同步的区别是:线程同步是 CPU 执行的同步所谓同步,是为了数据操作的原子性。io同步是数据流读写(比如磁盘、网卡)的同步。比如往 stream 先 write aaa,这时候 buffer 缓冲区就有了 aaa,再 write bbb,如果并行不同步操作的话,就会出现 ab…

    2023年2月12日
    39800
  • oa 系统协同

    标题:OA系统协同的重要性与实施策略 摘要:办公自动化(OA)系统协同 对于提升企业效率和内部沟通至关重要。1、减少信息孤岛,促进数据共享。2、加强团队合作,提高工作效率。3、强化管理监控,保障信息安全。4、优化流程管理,简化日常工作。5、增强用户体验,提升员工满意程度。在这些观点中,减少信息孤岛通…

    2024年1月17日
    26400
  • 数据分析中的生存分析是什么

    生存分析是统计学领域中的一种工具,其主体答案是用于分析预期事件发生的时间和事件发生率。该分析的核心观点包括:1、时间到事件的数据,2、截尾数据的处理,3、风险函数和生存函数,4、Cox比例风险模型。生存分析重点关注在一定时间内,一个或多个事件是否发生,适用于医学、工程、经济等多个领域。它通过对时间到…

    2023年11月21日
    39200
  • 在云原生架构中实现服务网格的步骤

    本文将围绕在云原生架构中实现服务网格的关键步骤。服务网格作为1、现代化微服务架构的核心组件,其实现步骤主要包括但不限于:2、选择合适的服务网格产品、3、定义服务之间的通信规则、4、安装和配置服务网格、5、服务部署和迁移以及6、网格监控和管理。本文将对这些核心观点逐一进行阐释,并指出在该过程中需要特别…

    2023年11月23日
    27300
  • 测试场景用例怎么写

    测试场景用例编写步骤:1、确定业务场景分析的范围;2、业务流程梳理;3、场景串联。确定业务场景分析的范围是指根据业务的目标(价值)、类别、技术等输入,确定业务场景分析的范围,业务分析就是需求分析的过程。 一、测试场景用例怎么写 1、确定业务场景分析的范围 根据业务的目标(价值)、类别、技术等输入,确…

    2023年4月6日
    1.3K00
  • vscode分为什么版本

    VS Code(Visual Studio Code)分为两个主要版本:官方版本(Stable Version)和开发者预览版(Insider Version)。这两个版本的目的是满足不同用户群体的需求,官方版本提供稳定、经过充分测试的功能,适合需要稳定开发环境的用户。而开发者预览版则是为了向开发者…

    2024年4月3日
    15500

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部