RESTful Web 服務 - 無狀態
根據 REST 架構,RESTful Web 服務不應在伺服器上保留客戶端狀態。此限制稱為“無狀態”。客戶端應負責將上下文傳遞給伺服器,然後伺服器可以儲存此上下文以處理客戶端的進一步請求。例如,伺服器維護的會話由客戶端傳遞的會話識別符號識別。
RESTful Web 服務應遵守此限制。我們在 RESTful Web 服務 - 方法 章節中已看到,Web 服務方法不會儲存任何從其呼叫的客戶端的資訊。
考慮以下 URL -
https://: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 服務需要在每個請求中獲取額外資訊,然後進行解釋以獲取客戶端狀態(如果要處理客戶端互動)。
廣告