You*_*sef 8 java session servlets spring-mvc
1 - 会话变量存储在java Web应用程序中的哪些位置?在客户端或服务器端?
2 - 如果我在会话中放入了大量对象和变量,它会减慢客户端的请求吗?
PS在我的情况下,我使用spring mvc.
Ell*_*sch 11
"session"变量由两部分组成,一个非常小的会话标识符,存储在客户端上,通常被命名jSessionId并存储为cookie.但是,sessionId也可以编码为URL.
会话的第二部分是实际数据,它存储在服务器上.如果您的服务器是多服务器群集的一部分,则可能位于服务器端数据库中.每个会话由该sessionId标识,并且客户端随每个请求发送它.这就是它设计得非常小的原因.
简单的答案是:您的会话数据存储在服务器端.
Web浏览器将只获取一个字符串ID来标识它的会话.
事实上,Spring安全性会更多地关注会话信息,因为如果用户甚至不登录,则会话可能根本不存在.
当我只使用spring mvc时,我不使用session来存储重要数据,因为session只存储在内存中.它旨在临时保存数据.
当我使用spring security时,我必须在内存中保存许多重要的东西,例如无法在Internet上传输的帐户数据,并且我不会每次都从数据库加载它们.所以我必须选择会话.
因此,当存储登录会话的服务器关闭时,所有已登录此服务器的用户都必须重新登录以检索另一个会话ID.
会话并不总是最佳选择,因为当我们有许多使用会话数据的服务器时,我必须在所有服务器之间共享数据,无论如何,net IO对于服务器而言是昂贵的.