• 服务器端状态

    服务器端状态

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

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

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

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

    原文: https://88250.gitbooks.io/wide-dev-guide/zh-cn/session_mgmt/server_side_state.html