根據(jù) REST 架構(gòu),一個 RESTful Web 服務(wù)不應(yīng)該在服務(wù)器上保持客戶端狀態(tài)。這種約束被稱為無狀態(tài)??蛻舳说穆氊熓莻鬟f其上下文給服務(wù)器,然后服務(wù)器存儲這個上下文以處理客戶端的請求。比如,由服務(wù)器維護的會話是通過客戶端傳遞的會話標示符識別的。
RESTful Web 服務(wù)應(yīng)該遵守這一約束。我們已經(jīng)在 RESTful Web 服務(wù) - 方法 教程中見過,Web 服務(wù)方法不會存儲調(diào)用它們的客戶端的任意信息。
考慮如下 URI:
http://localhost:8080/UserManagement/rest/UserService/users/1
如果我們使用瀏覽器,使用基于 Java 的客戶端或者使用 postman 訪問上面的 url,結(jié)果始終是 User XML 并且它的 ID 為 1,因此服務(wù)器并沒有存儲客戶端相關(guān)的任意信息。
<user>
<id>1</id>
<name>mahesh</name>
<profession>1</profession>
</user>
下面是 RESTful Web 服務(wù)中無狀態(tài)的好處:
下面是 RESTful Web 服務(wù)中無狀態(tài)的缺點: