Wide Dev Guide

服务器端状态

一般 Web 应用的服务器端都是“无状态”的设计:一次 HTTP 请求-响应完成一个操作,下一个操作和这次的操作没有任何直接的关联。

比如“用户注册”一般都是在一个请求的生命周期内完成,即使不能完成,也需要服务器端持久化状态,“下一步”时查询该状态并继续进行操作。

这样的“无状态”设计这主要是因为:

  • 通讯协议受限:Web 应用(网站)都是基于 HTTP 协议,而 HTTP 是无状态协议
  • 状态难以抽象:“有状态”设计比较复杂,状态的具体表现在不同应用(甚至是不同业务)中是完全不一样的,很难抽取出共性
  • 性能考量:“有状态“应用会占用大量系统资源,对于在线用户量大的网站是不可接受的
  • “无状态80%”:大多数需求都可以通过“无状态”设计来实现,而且能够工作得很好