摘錄 Restful 的無狀態原則

2021-09-01 07:39:45 字數 457 閱讀 7314

「無狀態」 的概念逐漸流行,得益於分布式系統的發展。首先,無狀態請求易於實現負載均衡。在分布式web系統下,有多個可用伺服器,每個伺服器都可以處理客戶端請求。 傳統的有狀態請求,因為狀態資訊只儲存在第一次發起請求的那台伺服器上,之後的請求都只能由這台伺服器來處理,伺服器無法自由排程請求。無狀態請求則完全沒有這個限制。其次,無狀態請求有較強的容錯性和可伸縮性。如果一台伺服器宕機,無狀態請求可以透明地交由另一台可用伺服器來處理,而有狀態的請求則會因為儲存請求狀態資訊的伺服器宕機而承擔狀態丟失的風險。

需要注意的是,「狀態"指請求的狀態,而不是資源的狀態。restful風格的無狀態約束要求伺服器不儲存請求狀態,如果確實需要維持使用者狀態,也應由客戶端負責。傳遞user credentials 是restful的,而傳遞sessionid是unrestful的,因為session資訊儲存在伺服器端。

通用的搜尋引擎,是無狀態架構的範例。restful的搜尋介面特別適用。

restful的無狀態理解

所謂無狀態 就是資源可以通過uri來指定,就像是乙個蘿蔔乙個坑的意思。而且定位與其他資源無關,也不會因為其他資源的變化而變化。有狀態和無狀態的區別,有狀態是指 比如乙個資產應用系統,你想看下報廢的台式電腦有多少,是什麼型號,你得在登入介面登進去,然後點開資產維護功能,檢視報廢的相關資訊,選中台式電腦...

高併發架構設計原則 無狀態

服務端不儲存任何客戶端請求者資訊,客戶端的每次請求必須具備自述資訊,通過這些資訊識別客戶端身份。優點 客戶端請求不依賴服務端的資訊,任何多次請求不需要必須訪問到同一臺服務,這樣為伺服器橫向擴充套件提供了條件。服務端需要記錄每次繪畫的客戶端資訊,從而識別客戶端身份,根據客戶端身份進行對請求的處理,如s...

REST無狀態的理解

representational state transfer的縮寫。我對這個片語的翻譯是 表現層狀態轉化 降低開發的複雜性,提高系統的可伸縮性 資源 rest的名稱 表現層狀態轉化 中,省略了主語。表現層 其實指的是 資源 resources 的 表現層 所謂 資源 就是網路上的乙個實體,或者說是...