7

HTTPSession 变量可以容纳的数据的最大限制(即大小)是多少?如果超过了会发生什么?最重要的是,如果大小超过 HTTPSession 变量可以容纳的最大大小,那么在整个会话中获取数据的替代方法是什么?

4

2 回答 2

8

除了服务器的内存之外,没有限制。替代方案是

于 2012-07-28T07:21:15.187 回答
0

有一个很好的建议是谨慎使用 HttpSession 上的数据会话,主要是因为必须考虑很多点,而不仅仅涉及数据大小。

  • 如果连接不安全,HttpSession 可能会被劫持。因此,如果连接不是通过 HTTPS,则与 HTTP 相比,被劫持的机会更高。
  • 估计在网络上使用该服务的用户数量。您可以分配世界上所有可能的内存,但如果解决方案是预先分配一个没有任何大小限制的会话,那么当许多用户使用时,JVM 中出现 OutOfMemory 的可能性很高。例如:一个 8 KB 的会话数据乘以 100.000 个用户可以达到 800 MB。
  • 在服务器中配置的会话超时,Websphere Application Server 默认设置为 30 分钟。如果会话超时减少,它可能有助于 JVM 过载,另一方面你可以让用户非常愤怒。
  • 如果解决方案使用许多服务器(集群),需要考虑的一件事是它们之间的共享 Http 会话。

更多信息,我建议您阅读Ken Hygh、Ruth Willenborg 和 Stacy Joines 所著的 Java 网站性能分析一书中的第 2 章 - Http 会话

于 2020-07-02T19:45:19.390 回答