【问题标题】:Is jSessionId really unique?jSessionId 真的是独一无二的吗?
【发布时间】:2011-08-18 22:26:42
【问题描述】:

为了说明一些情况,我正在开发一个 API 来跟踪网站上的用户操作(也包括匿名用户)。到目前为止,我们使用 jsessionId 来识别每个用户及其操作。

那个 API,现在在 Tomcat 和 JBoss 上运行。

真正重要的问题是,既然我们每天分析所有数据,那么这个 jsessionId 的唯一性是否能保证一整天?或者,不是同时,其他用户可以获取其他用户之前使用的相同 jsessionId 吗?

提前致谢。

【问题讨论】:

  • 这只是一个猜测,但由于 jSessionId 基本上类似于 UUID,理论上可能会发生冲突,但极不可能发生。见en.wikipedia.org/wiki/…

标签: java web-applications jakarta-ee jsessionid


【解决方案1】:

抱歉,未指定。它只需要在那个时间点对于那个 jvm 是唯一的。也就是说,会话 id 一天可以重复使用多次,只要没有其他人有会话。我同意大多数实际实现可能会提供更强的保证,但我认为您不能指望它。

看看this mailing list - 人们在其中讨论了tomcat和resin中的会话ID重用。

因此,基本上,会话 ID 是唯一的假设只有在会话被销毁之前才成立。

【讨论】:

  • 感谢您的回答。我们想知道这种可能性。那么,有什么方法可以跟踪访客用户吗?
  • 这里讨论的具体情况意味着同一用户在新会话中被分配了相同的会话ID。据我了解这个问题,这不会是一个问题。为其他用户重用相同的会话 ID 并非不可能,但可能性很小(除非发生了一些恶意操作)。
  • 只是为了确保我清楚 inOde - 是的,您可以跟踪用户。但是您必须小心并意识到,一旦会话被释放(SessionListener 是您的朋友),其他人可能会使用该 ID
猜你喜欢
  • 2012-10-08
  • 2015-10-18
  • 1970-01-01
  • 2015-06-20
  • 2017-01-01
  • 2017-05-10
  • 2011-05-23
  • 1970-01-01
  • 2021-03-02
相关资源
最近更新 更多