問題

我需要一些澄清.我一直在閱讀關於REST的內容,並構建RESTful應用程式.根據wikipedia,REST本身被定義為代表狀態轉移.因此,我不明白每個人都在加速的所有無國籍gobbledeygook.

從wikipedia:

在任何特定時間,客戶端可以在 應用程式狀態或“休息時”.處於休息狀態的客戶端能夠 與使用者互動,但不建立負載並消耗任何per-client 儲存在伺服器集或網路上。

他們只是說不使用會話/應用程式級資料儲存嗎??

我得到REST的一個目標是使URI訪問一致並可用,例如,而不是隱藏帖子內部的分頁請求,使請求的頁面數量成為GET URI的一部分.對我來說是有意義的.但似乎它正在進行覆蓋,說每個客戶端資料(會話資料)都不應該儲存伺服器端.

如果我有一個訊息佇列,我的使用者想讀取訊息,但當他讀取訊息時,想阻止會話期間傳遞的某些傳送器訊息?將其儲存在伺服器端的地方是否有意義,並且伺服器只發送不被使用者阻止的訊息(或訊息ID)?

每次我請求新訊息列表時,我是否真的必鬚髮送整個訊息傳送器列表來阻止?與我相關的訊息列表首先不會/甚至不應該是公開可用的資源.

再一次,只是試圖理解這一點.有人請澄清一下.


更新:

我找到了一個堆疊溢位問題,其中有一個答案,沒有像那樣讓我: 如何管理REST 中的狀態 哪個說法是重要的客戶端狀態應該在每個請求上轉移...Ugg.似乎有很多開銷....這對嗎?

  最佳答案

無狀態意味著每個HTTP請求都是完全隔離的.當客戶端提出HTTP請求時,它包含伺服器滿足該請求所需的所有資訊.伺服器永遠不依賴以前請求提供的資訊.如果該資訊很重要,客戶端將不得不在以後的請求中再次傳送它.無狀態還帶來了新的功能.透過load-平衡伺服器分發無狀態應用程式更容易.無狀態應用程式也很容易快取.

實際上有兩種狀態:生活在伺服器上的客戶端和資源狀態的應用程式狀態。

Web服務只需要關心實際發出請求時的應用程式狀態.其餘時間,它甚至不知道存在.這意味著每當客戶端發出請求時,它必須包含所有應用程式狀態,伺服器需要處理它.

資源狀態對於每個客戶端都是一樣的,它的適當位置在伺服器上.當您將圖片上傳到伺服器時,您建立一個新資源:新圖片有自己的URI,可以成為未來請求的目標.您可以透過HTTP獲取、修改和刪除此資源.

希望這有助於區分無國籍狀態和各州的含義。

  相同標籤的其他問題

restsession-state