【发布时间】:2011-07-23 20:37:41
【问题描述】:
在 Java Web 应用程序中,Java servlet 创建唯一的 jsessionid,它作为 cookie 传递给客户端浏览器,以跟踪客户端在第一个请求之后的后续请求。但是当由于安全策略而禁用 cookie 并且不允许 URL 重写时,我的理解是 Java servlet 将为来自同一客户端的每个请求创建一个新的会话对象。它是否正确?这是否意味着大量的服务器内存浪费(为每个永远不会再次使用的会话对象分配过多的内存以及过多的垃圾回收)?
在这种情况下使用的一种解决方案是使用客户端的IP地址和用户代理字符串来唯一标识用户并存储在数据库中。这是正确的解决方案吗?
上述情况在搜索引擎机器人的情况下相当常见,它们在访问网站时通常会发出数千个频繁的请求。
对于为基于 Java 的 Web 应用程序设计适当的解决方案来解决这个问题还有其他想法吗?
【问题讨论】: