RESTful Web 服务 - 无状态性
根据 REST 架构,RESTful Web 服务不应在服务器端保持客户端状态。这种限制称为无状态性(Statelessness)。客户端有责任将自己的上下文传递给服务器,然后服务器可以存储此上下文来处理客户端的后续请求。例如,服务器维护的会话由客户端传递的会话标识符来标识。
RESTful Web 服务应遵守这一限制。我们在 RESTful Web 服务 - 方法 章节中已经看到,Web 服务方法在被调用时不会存储来自客户端的任何信息。
考虑以下 URL −
https://localhost: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 服务需要在每个请求中获取额外信息并进行解释,以获取客户端状态,尤其当需要处理客户端交互时。