HttpSession 数据存储在哪里?

Posted

技术标签:

【中文标题】HttpSession 数据存储在哪里?【英文标题】:Where is the HttpSession data stored? 【发布时间】:2011-12-14 16:36:25 【问题描述】:

HttpSession是建立在cookies和url-rewriting之上的高级接口,这意味着只有一个session ID存储在客户端,与之相关的数据存储在服务器端。

HttpSession 数据实际存储在服务器端的什么位置?在JVM内存或其他地方?我可以更改存储它的位置吗,例如将它们保存到内存数据库中?

如果不在数据库中,当多个客户端同时处理同一个会话数据时,是否存在并发问题?

【问题讨论】:

【参考方案1】:

这取决于服务器存储会话数据的位置;我熟悉的那些允许对会话数据的存储位置(磁盘、数据库、内存……)进行某种级别的配置。

不同的客户端不应处理相同的会话数据——会话数据是每个客户端的。也就是说,单个客户端(如网络浏览器)可能会打开多个窗口或选项卡,是的,这可能会导致问题。

由于会话数据在服务器之间共享,集群增加了一层复杂性/令人头疼的问题。

【讨论】:

以上是关于HttpSession 数据存储在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

redis存储session需要多少空间

在哪里存储 objectstore 和 vwsession 对象

如何在 HttpSession 中存储 Java 对象?

web访问时,用户信息和数据存储在哪里

雪花表存储在哪里?

调试时,数据存储在哪里