一尘不染

Java HttpSession属性存储在哪里?

tomcat

对象是否已序列化并发送给用户并在每个连接上都返回(存储在cookie中)?

还是将它们存储在服务器堆中,而cookie只是一个很小的标识符?

有关此主题的任何信息都将有所帮助。

谢谢


阅读 970

收藏
2020-06-16

共1个答案

一尘不染

你是在第二次猜测中得到的。

Cookie包含JSESSIONID。该ID用于在服务器维护的地图中查找用户的HttpSession。至少这是最常见的方式。服务器可以实现更多复杂的方法,但是在cookie中来回穿梭整个状态并不是其中一种。

这有一些含义。首先,如果服务器出现故障,您将丢失会话状态。其次,如果您有服务器群集,则需要使用户每次都连接到同一服务器,否则他们将失去后续请求之间的会话。最后,如果有人找到了复制他人JSESSIONID并将其替换为JSESSIONID的方法,那么会话劫持就成为可能。

2020-06-16