HttpServletRequest
的getSession(boolean)方法提到了会话完整性。Tomcat 如何维护会话完整性?它使用什么规则?什么方法?究竟发生了什么?
编辑
如何以及何时创建特定会话 ID?例如,Tomcat 是否依赖 IP 地址和端口?
在 Tomcat 中,该ManagerBase.generateSessionId()
方法负责生成会话 ID。在我看来,会话 ID 是基于随机数生成的。您可以将客户端的 IP 地址存储在会话中并在您的 web 应用程序中检查它,但据我所知 Tomcat 不会这样做。
关于会话完整性:你能定义它吗?Java Servlet Specification, Version 3.0中有一段关于它的内容,但并不过分:
7.1.4 会话完整性
Web 容器必须能够支持 HTTP 会话,同时为来自不支持使用 cookie 的客户端的 HTTP 请求提供服务。为了满足这一要求,Web 容器通常支持 URL 重写机制。
该博客提供了一些有关使用 Tomcat 使用 cookie 进行会话跟踪的详细信息。