RESTful Web 服务 - 无状态


根据 REST 架构,RESTful Web 服务不应在服务器上保留客户端状态。这种限制称为无国籍。客户端负责将其上下文传递给服务器,然后服务器可以存储此上下文以处理客户端的进一步请求。例如,服务器维护的会话是通过客户端传递的会话标识符来标识的。

RESTful Web 服务应遵守此限制。我们在RESTful Web 服务 - 方法一章中看到了这一点,Web 服务方法不存储来自调用它们的客户端的任何信息。

考虑以下 URL -

https://localhost:8080/UserManagement/rest/UserService/users/1

如果您使用浏览器或使用基于 java 的客户端或使用 Postman 点击上述 url,结果将始终是 Id 为 1 的用户 XML,因为服务器不存储有关客户端的任何信息。

<user> 
   <id>1</id> 
   <name>mahesh</name> 
   <profession>1</profession> 
</user>

无国籍的优点

以下是 RESTful Web 服务中无状态的好处 -

  • Web 服务可以独立处理每个方法请求。

  • Web 服务不需要维护客户端以前的交互。它简化了应用程序设计。

  • 由于 HTTP 本身是无状态协议,因此 RESTful Web 服务可以与 HTTP 协议无缝协作。

无国籍的缺点

以下是 RESTful Web 服务中无状态的缺点 -

  • Web 服务需要在每个请求中获取额外信息,然后进行解释以获取客户端状态,以便处理客户端交互。