服务器端状态
一般 Web 应用的服务器端都是“无状态”的设计:一次 HTTP 请求-响应完成一个操作,下一个操作和这次的操作没有任何直接的关联。
比如“用户注册”一般都是在一个请求的生命周期内完成,即使不能完成,也需要服务器端持久化状态,“下一步”时查询该状态并继续进行操作。
这样的“无状态”设计这主要是因为:
- 通讯协议受限:Web 应用(网站)都是基于 HTTP 协议,而 HTTP 是无状态协议
- 状态难以抽象:“有状态”设计比较复杂,状态的具体表现在不同应用(甚至是不同业务)中是完全不一样的,很难抽取出共性
- 性能考量:“有状态“应用会占用大量系统资源,对于在线用户量大的网站是不可接受的
- “无状态80%”:大多数需求都可以通过“无状态”设计来实现,而且能够工作得很好
原文: https://88250.gitbooks.io/wide-dev-guide/zh-cn/session_mgmt/server_side_state.html