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

Gen*_*nik 29 session session-variables session-state stateless

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

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

tst*_*ter 34

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

注意:会话数据实际上是缓存数据.这是它应该用于的.如果您有一个昂贵的查询将被重用,那么将其保存到会话中.请记住,当您尝试以后再获取它时,您不能认为它会在那里.在检索之前,请务必检查它是否存在.


Jam*_*ong 12

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

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

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