gpt4 book ai didi

session - JSESSIONID 后缀的用途是什么?

转载 作者:行者123 更新时间:2023-12-02 17:29:11 31 4
gpt4 key购买 nike

使用浏览器对我的服务进行身份验证后,我发现一个包含以下键/值对的 cookie:

JSESSIONID=40d4b01c47ddb858718291d319a1a817d3037fdc6f2c341c195a94dc6ee8e8a1.e38Lb3qTb3aKai0RbxeMahqNbN90; path=/MyService; secure

注意后缀(即“.”之后:e34Mc3uLa3yPbO0La3aNa3eTc38Ke0)

当我使用 Javaservetl 的 API 获取 session id (javax.servlet.http.HttpSession.getId()) 时,我得到以下值

40d4b01c47ddb858718291d319a1a817d3037fdc6f2c341c195a94dc6ee8e8a1

这和我刚才提到的cookie变量值的第一部分是一样的!

我曾经尝试在 ColdFusion (CF) 上维护多个 HTTP 请求之间的 session (如果你不知道 CF 是什么也没关系,它只是一个开发应用程序的平台),如果我将 cookie 变量 JSESSIONID 设置为我在这个问题开头提到的整个值。为了正确维护 session ,我必须发送 session ID 的第一部分(即“.”之前)

所以我的问题是,为什么servlet API返回JSESSIONID的一部分,而从服务器返回的cookie值有一个后缀?这个后缀来自哪里?它的用途是什么?

最佳答案

后缀可以是服务器的主机名。或者它可以是一个随机值。它的生成、配置和含义取决于所使用的应用程序服务器,因为它不是 servlet 规范的一部分。

这在非集群设置中非常有用,可以确保 session 实际上属于服务器。想象一下具有粘性 session 和服务器故障的负载平衡设置。请求现在被定向到另一台服务器。理论上,该服务器也可以有一个具有相同 session ID 的 session 。然后,用户将进入不属于他的 session 。附加服务器唯一后缀使应用程序服务器无法恢复不是在同一服务器中创建的 session 。

您可以在这里了解一下:https://developer.jboss.org/message/879684其中讨论了 jboss 7 和 wildfly 8.1 之间这种行为的差异。

关于session - JSESSIONID 后缀的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26882310/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com