基于html/http的应用中,为了维护代表客户端的瞬时状态,servlet容器提供了一种称为会话空间的设施,被表示为HttpSession接口。这个思想本身是简单而直接的,servlet程序员可以将任意的可序列化对象置于会话空间,而下一次,同一个用户对同一个Web应用的任何部分发出请求时,servlet容器将确保同样的对象会处在HttpSession对象中。这使得servlet开发者可以为在服务器上的Web应用在多个HTTP请求之间维护每个客户端的状态信息;
遗憾的是,这种机制并非完全免费的。首先,在服务器端为每个客户端存储数据将会减少该服务器上的可用资源,这意味着服务器的最大负载能力会成比例下降。这个算式很简单:在会话空间中保存越多的数据,机器能够处理的会话就越少。由此推导出,为了令给定的机器能够支持尽可能多的客户端,必须将会话的存储量保持在最小。实际上,对于真正具备可扩展性的系统而言,无论何时都应该避免使用会话。如果在服务器端可以不产生任何为每个客户端进行处理的开销,那么机器的负载能力(在理论上)可以到达无限,能够支持任意多连接到它的客户端。