RESTful Web 服务 - 无状态



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

RESTful Web 服务应遵守此限制。我们在 RESTful Web 服务 - 方法 章节中已看到,Web 服务方法不会存储任何从其调用的客户端的信息。

考虑以下 URL -

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

如果您使用浏览器、基于 Java 的客户端或使用 Postman 访问上述 URL,结果将始终是 ID 为 1 的 User XML,因为服务器不会存储任何有关客户端的信息。

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

无状态的优势

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

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

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

  • 由于 HTTP 本身是一种无状态协议,RESTful Web 服务可以与 HTTP 协议无缝配合。

无状态的劣势

以下是在 RESTful Web 服务中无状态的劣势 -

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

广告