REST API 是无状态的

问题描述 投票:0回答:1

我听说 RSt API 是无状态的。这意味着服务器应用程序将无法区分对同一路由的许多调用。 对此我有两个问题:

  1. 那么发送的每个 API 调用都必须携带有效的身份验证凭据(假定 API 受到保护)?
  2. 任何在客户端维护状态的 Web 应用程序(例如:电子商务应用程序)都不能使用 REST API 来实现?
rest
1个回答
0
投票

REST 是无状态的,因为 HTTP 是无状态的。与请求相关的所有信息都应独立包含在请求中。这意味着,如果底层 tcp 连接在 2 个 HTTP 请求之间断开,第二个请求应该获得与 TCP 连接未断开时相同的响应。

HTTP / REST 的无状态性实际上只与协议的较低层有关。在 REST api 和 HTTP 中还有很多“状态”,例如 cookie、身份验证、数据库都是不同形式的“状态”。

回答您的具体问题:

  • 那么发送的每个 API 调用都必须携带有效的身份验证凭据(假定 API 受到保护)?

是的。如果同一连接上的前一个请求已通过身份验证,则第二个请求仍需要提交凭据。

  • 任何在客户端维护状态的 Web 应用程序(例如:电子商务应用程序)都无法使用 REST API 实现?

我在这里能做的最好的事情就是“视情况而定”。如果您谈论的是存储在数据库中的购物车,那么这种状态对于 REST API 来说非常合适。

© www.soinside.com 2019 - 2024. All rights reserved.