无状态Web应用程序有哪些好处?

时间:2011-04-04 14:20:17

标签: session session-state session-variables stateless

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

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

2 个答案:

答案 0 :(得分:33)

  1. 减少内存使用量。想象一下,如果谷歌存储了关于他们每个用户的会话信息
  2. 更容易支持服务器场。如果您需要会话数据并且您有多个服务器,则需要一种在服务器之间同步该会话数据的方法。通常这是使用数据库完成的。
  3. 减少会话过期问题。有时,到期会话会导致难以找到和测试的问题。无会话应用程序不会受这些影响。
  4. 网址链接性。某些站点存储用户在会话中查看的内容的ID。这使得用户无法简单地复制和粘贴URL或将其发送给朋友。
  5. 注意:会话数据实际上是缓存数据。这是它应该用于的。如果您有一个昂贵的查询将被重用,那么将其保存到会话中。请记住,当您尝试以后再获取它时,您不能认为它会在那里。在检索之前,请务必检查它是否存在。

答案 1 :(得分:12)

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

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

从缩放和性能角度来看,请参阅tsters答案。