RPC、RMI、HTTP、REST的區別(小知識)

RPC:遠程服務調用(Remote Procedure Call),加上Protocol後可以稱爲遠程過程調用協議,可以用不同的語言實現,可以借用HTTP協議或者其他協議來實現,一般都是通過基於TCP/IP的自定義協議實現。

HTTP協議和TCP/IP協議有什麼關係呢?HTTP是應用層協議,TCP/IP是傳輸層協議。

HTTP協議請求中會包含很多內容,傳輸效率要低,一般RPC實現都不採用HTTP協議;RPC採用自定義的TCP協議,可以精簡報文格式,一般都是採用二進制形式,客戶端和服務端採用統一的序列化和反序列化方式保持數據統一,效率更高,所以一般企業內部通信都是採用自定義TCP的RPC協議,傳輸效率高。

 

HTTP:超文本傳輸協議(HyperText Transfer Protocal),是應用層的一種網絡傳輸協議,一般格式都是json或者xml,也是基於TCP/IP實現的。

 

REST:是一種架構風格,是基於HTTP協議的,可以理解稱一種API的規範,比如查詢都是GET請求,新增都是POST,修改是PUT,刪除是DELETE等。

 

RMI:遠程方法調用(Remote Method Invocation),是一種用於實現RPC的java API,僅僅應用在java程序上,依賴於JVM,因爲他僅僅支持從一個JVM到另一個JVM的調用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章