30

似乎一些 Web 架构师的目标是拥有一个无状态的 Web 应用程序。这是否意味着基本上不存储用户会话?或者还有更多?

如果只是用户会话存储,不这样做有什么好处?

4

2 回答 2

34
  1. 减少内存使用。想象一下,如果谷歌存储了每个用户的会话信息
  2. 更容易支持服务器场。如果您需要会话数据并且拥有多个服务器,则需要一种跨服务器同步会话数据的方法。通常这是使用数据库完成的。
  3. 减少会话过期问题。有时,过期的会话会导致难以发现和测试的问题。无会话应用程序不受这些影响。
  4. 网址可链接性。一些站点存储用户在会话中查看的内容的 ID。这使得用户无法简单地复制和粘贴 URL 或将其发送给朋友。

注意:会话数据实际上是缓存数据。这就是它应该用于的用途。如果您有一个要重用的昂贵查询,请将其保存到会话中。请记住,当您稍后尝试获取它时,您不能假设它会在那里。在检索之前始终检查它是否存在。

于 2011-04-04T14:23:24.137 回答
12

从开发人员的角度来看,无状态有助于使应用程序更易于维护和使用。如果我知道我正在处理的网站是无状态的,我不必担心在加载特定页面之前在会话中正确初始化的事情。

从用户的角度来看,无状态允许资源是可链接的。如果页面是无状态的,那么当我将朋友链接到该页面时,我知道他们会看到我所看到的。

从扩展和性能的角度来看,请参阅测试人员的回答。

于 2011-04-04T14:27:49.410 回答