Java HttpSession 属性存储在哪里?

2024-05-20

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

或者它们存储在服务器堆中并且cookie只是一个非常小的标识符?

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

谢谢


你第二次猜到了。

该 cookie 包含一个 JSESSIONID。该 id 用于在服务器维护的映射中查找用户的 HttpSession。至少这是最常见的方式。服务器可以通过更复杂的方式来实现这一点,但在 cookie 中来回穿梭整个状态并不是其中之一。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java HttpSession 属性存储在哪里? 的相关文章

随机推荐