在restful
架構中,關注點在於資源,操作資源時使用標準方法檢索並操作資訊片段,在rpc
架構中,關注點在於方法,呼叫方法時將像呼叫本地方法一樣呼叫伺服器的方法。
rest
即表述性狀態傳遞representational state transfer
,是一種軟體架構風格,也可以稱作是一種設計api
的模式,rest
通過http
協議定義的通用動詞方法get
、post
、put
、delete
,以uri
對網路資源進行唯一標識,響應端根據請求端的不同需求,通過無狀態通訊,對其請求的資源進行表述,符合rest
設計規範的架構就稱為restful
架構。
安全性是指訪問rest
介面時不會對服務端資源狀態發生改變。
冪等性是指對於同一rest
介面的uri
多次訪問時,得到的資源狀態是相同的。
rpc
即遠端過程呼叫remote procedure call
,簡單的理解是乙個節點請求另乙個節點提供的服務,遠端過程呼叫,是相對於本地過程呼叫來說的,當呼叫方法時就像呼叫本地方法一樣呼叫遠端伺服器的方法,做到了輕量、無感知通訊。
客戶端
1. 將這個呼叫對映為call id
2. 將這個call id與引數等序列化,以二進位制形式打包
3. 將序列化資料報通過網路通訊傳送到服務端
4. 等待服務端響應
5. 服務端呼叫成功並返回結果,反序列化後進行下一步操作
服務端
1. 在本地維護乙個call id的map,用以保證id與呼叫方法的對應
2. 等待客戶端請求
3. 得到乙個請求後,將資料報反序列化,得到call id與引數等
4. 通過map尋找call id所對應的函式指標
5. 通過函式指標呼叫函式,並將資料報反序列化後的引數傳遞,得到結果
6. 將結果序列化之後通過網路通訊返回到客戶端
注:此處的客戶端指的是本地呼叫者,也可以是一台伺服器
此處的服務端指的是被呼叫者,也可以是一台伺服器
資料報通訊時無論是使用socket進行tcp傳輸,或使用http進行傳輸都是可行的
RESTful架構與RPC架構
在restful架構中,關注點在於資源,操作資源時使用標準方法檢索並操作資訊片段,在rpc架構中,關注點在於方法,呼叫方法時將像呼叫本地方法一樣呼叫伺服器的方法。rest即表述性狀態傳遞representational state transfer,是一種軟體架構風格,也可以稱作是一種設計api的模...
RESTful架構與RESTful API設計
rest這個詞是roy thomas fielding博士在他2000年的博士 中提出的,fielding將他對網際網路軟體的架構原則定名為rest,即representational state transfer的縮寫,翻譯為 表現層狀態轉化 如果乙個架構符合rest原則,就稱它為restful架...
理解RESTful架構
理解restful架構 restful的精闢理解 看url就知道要什麼 看http method就知道幹什麼 看http status code就知道結果如何 rest不是 rest 這個單詞,而是幾個單詞縮寫。但即使那幾個單詞說出來,也無法理解在說什麼 不是要貶低人,是我自己也理解困難 rest描...