HttpSession
是基于cookie和url重写的高级接口,意味着客户端仅存储了会话ID,与之关联的数据存储在服务器端。HttpSession
数据实际上存储在哪里,是在JVM内存中还是其他地方?我能否更改数据存储的位置,例如将它们保存到内存数据库中?如果不是在数据库中,当多个客户端同时处理同一会话数据时是否存在并发问题?
HttpSession
是基于cookie和url重写的高级接口,意味着客户端仅存储了会话ID,与之关联的数据存储在服务器端。HttpSession
数据实际上存储在哪里,是在JVM内存中还是其他地方?我能否更改数据存储的位置,例如将它们保存到内存数据库中?服务器可以决定在哪里存储会话数据;我熟悉的一些服务器允许一定程度的配置,以确定会话数据存储在何处(磁盘、数据库、内存等)。
不同的客户端不应该共享同一份会话数据--会话数据是针对每个客户端的。尽管如此,单个客户端(例如 Web 浏览器)可能会打开多个窗口或选项卡,这可能会导致问题。
集群增加了复杂性/麻烦,因为会话数据在服务器之间共享。