RESTful Web Services – 无状态性
根据REST体系结构,在服务器上,RESTful Web服务不应保持客户端状态。这个限制称为无状态性。客户端需要传递它的上下文到服务器,然后服务器可以存储这个上下文以处理客户端的进一步请求。例如,服务器维护的会话由客户端传递的会话标识符来标识。
RESTful Web Services 应遵循这个限制。我们在“RESTful Web Services – 方法”章节中已经看到这一点,该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 Services 无状态性的好处如下:
- Web服务可以独立地对待每个方法请求。
-
Web服务不需要维护客户端的先前交互,这简化了应用程序的设计。
-
因为HTTP本身是一种无状态协议,所以RESTful Web Services可以与HTTP协议无缝配合使用。
无状态性的缺点
RESTful Web Services 无状态性的缺点如下:
- Web服务需要在每个请求中获取额外的信息,然后解释以获取客户端的状态,以便处理客户端交互。