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

相关推荐

  • 文档软件有什么用

    文档软件的功能有:一、文字编辑功能;二、表格处理功能;三、文件管理功能;四、版面设计功能;五、制作Web页面功能;六、拼写和语法检查功能;七、强大的打印功能和兼容性。文档软件可以编排文档,包括在文档上编辑文字、图形、图像、声音、动画等数据。 一、文字编辑功能 文档软件可以编排文档,包括在文档上编辑文…

    2023年4月27日
    36400
  • 如何管理江南新区项目部

    管理江南新区项目部需要遵循的关键原则包括项目规划与策略制定、成员与资源的有效配置、营造积极的沟通环境、风险管理与应对,以及持续监控与改进。其中,项目规划与策略制定尤为重要,它要求项目管理者在项目启动之初,细致地评估项目目标、期望成果、所需资源以及潜在风险,制定详细的项目执行计划。这个过程还包括为项目…

    2024年4月10日
    1900
  • 有哪些国内外优秀的项目管理系统供应商

    摘要:项目管理系统是用于提高项目效率的工具,全球范围内存在众多供应商。主体答案是:国内外优秀的项目管理系统供应商包括Atlassian、Microsoft、Wrike、红帽、华为。这些供应商通过提供1、协作工具、2、时间管理功能、3、资源分配、4、项目跟踪、5、报告与分析,协助组织更加有效地管理项目…

    2023年11月13日
    28600
  • 好的需求管理流程是什么样的

    好的需求管理流程关键在于能明确定义项目目标与需求,保障项目顺利进行。核心观点包括:1、需求识别;2、需求收集与记录;3、需求优先级排序;4、需求分析与确认;5、需求变更控制;6、跟踪与报告。在这一流程中,需求识别作为基础,确保所有相关利益方的期望和需求得到考虑。收集与记录方法促进重要信息的有效转换。…

    2023年11月13日
    26000
  • 如何利用ChatGPT-4.0进行创意写作

    在利用ChatGPT-4.0进行创意写作时,关键在于掌握以下几点:1、设定明确的写作目标、2、运用ChatGPT-4.0丰富的语言模型、3、定制化提问、4、深度交互、5、利用其学习和调整的能力、6、结合人工智能与人类创造力。ChatGPT-4.0的高级语言处理能力使其成为创意写作的有力工具。用户通过…

    2023年11月29日
    37200
  • 商业智能的研究主要集中在哪三个方面

    商业智能的研究主要集中在三个方面:1、支撑技术的研究;2、体系结构的研究;3、应用系统的研究。商业智能技术提供使企业迅速分析数据的技术和方法,包括收集、管理和分析数据,将这些数据转化为有用的信息,然后分发到企业各处。 1、支撑技术的研究 商业智能是一个跨学科领域,主要借助两大学科的成果,一是计算机技…

    2022年10月25日
    48000
  • Java的封装类型和原始类型的区别

    Java的封装类型和原始类型的区别:1、传递方式不同;2、封装类可以有方法和属性;3、默认值不同;4、存储位置。封装类是引用类型。原始数据类型在传递参数时都是按值传递,而封装类型是按引用传递的(其实“引用也是按值传递的”,传递的是对象的地址)。 1、传递方式不同 封装类是引用类型。基本类型(原始数据…

    2023年2月13日
    48100
  • 现在Program Synthesis业界都在做什么

    业界最有名的应用莫过于Excel的FlashFill功能。程序合成(Program synthesis)一直是学术界热门的研究方向,但它在业界的应用却不像意图识别那样普遍。这一方面是由于程序合成比较复杂,另一方面也由于它的标注和解析方面有额外的困难。 业界最有名的应用莫过于Excel的FlashFi…

    2023年2月23日
    52200
  • vscode为什么没有保留文件

    VSCode没有默认设置为保留文件是为了保持编辑器的轻量级性质、为用户提供更自由的配置选项、避免不必要的磁盘写入、以及鼓励良好的版本控制实践。对于需要更改这一设置的用户,VSCode提供了可自定义的工作空间和用户设置,包括自动保存功能,用户可以根据需求开启或调整保存文件的时间间隔以及触发条件。自动保…

    2024年4月3日
    6700
  • 如何做好项目日常管理服务

    项目日常管理服务是确保项目顺利进行的关键,涉及到多方面的知识和技巧,包括但不限于项目计划与跟踪、资源分配、风险管理、沟通协调,以及质量控制。在这些方面当中,项目计划与跟踪尤为重要。通过有效的项目计划,我们能够明确项目的目标和路径,而且可以通过持续的跟踪,及时发现偏差并调整方向,这是确保项目成功的基础…

    2024年4月10日
    2300

发表回复

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

400-800-1024

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

分享本页
返回顶部