RESTful 无状态
REST 是 REpresentational State Transfer 的首字母缩写词,是分布式超媒体系统的一种架构风格。
REST 的六个指导原则或约束是:
- 统一接口
- 客户端服务器
- 无状态
- 可缓存
- 分层架构
- 按需编码(可选)。
我们将在本文中深入讨论 REST 的无状态约束。
注意:根据 REST{Representational “State” Transfer } 架构,服务器不会在服务器端存储有关客户端的任何信息。
从客户端到服务器的每个请求都必须包含处理该请求所需的所有信息,并且该信息不能存储在服务器端以供将来参考。这种限制称为无状态。
客户端负责自己存储和处理与会话相关的信息。如果前一个请求需要任何信息,客户端将在当前请求中共享它。
“无状态意味着每个 HTTP 请求都是在完全隔离的情况下发生的”。
应用程序状态是存储在服务器端用于识别传入请求和先前交互的信息,REST 无状态意味着不受应用程序状态的影响。
REST无状态的优点:
- 易于扩展:由于不需要任何存储信息,任何服务器都可以处理任何客户端请求。因此,可以通过将 API 部署到多个服务器来处理许多并发请求。
- 降低复杂性:由于不需要状态同步,因此降低了复杂性。
- 改进的性能:服务器不需要跟踪客户端请求,从而提高了性能。
REST无状态的缺点:
- 增加的请求大小:请求大小变得非常大,因为它包含有关请求和先前事务的所有信息。
无国籍的例子:
假设我们有一个 API,我们想登录并订购一些商品,部署在许多服务器上的 API 可以服务许多请求,即使来自同一个帐户,也不需要存储身份验证详细信息或提供的令牌状态。
每次客户端发出请求时,它都会发送身份验证详细信息以及其他所需信息,并且该请求可以在服务器端轻松处理,因为它包含完成请求所需的所有信息。