Restful, SOAP,以及RPC對比

2021-09-19 12:42:17 字數 1356 閱讀 5487

rest:

一種架構設計風格,提供了設計原則和約束條件

rpc:(遠端過程呼叫)

是一種允許分布式應用程式呼叫網路上不同計算機的可用服務的機制

soap:(簡單物件訪問協議) xml-rpc (****** object access protocol)

是基於rpc的第三代遠端呼叫

soap是交換資料的一種協議規範,是一種輕量的,簡單的,

基於xml的協議規範。

soap最主要的工作就是使用xml描述了rpc的請求資訊(uri/類/方法/引數/返回值)。

理論上soap就是一段xml,可以通過http,smtp等傳送它,並且soap也是

跨語言的。

rest與soap的區別:

概念方面:

restful介面與soap介面是完全不同的兩種資料通訊介面,前者使用的是http協議

通訊,請求的響應值可以是xml也可以是json。後者使用的是soap協議通訊,

通訊請求和響應都是xml,而且有wsdl作為請求和響應資訊的標準。

核心不同:

rest是基於http之上建立的一種介面規範,核心是資源,soap是本身一種協議,

以xml格式傳輸,soap的web服務以操作為中心的。

協議方面:

restful使用標準的http方法(get/put/post/delete)來抽象web系統的服務

能力,soap應用都通過定義自己個性化的介面方法來抽象web服務。

安全控制方面:

**伺服器可以指定安全策略,一般**伺服器的實現根據(uri,http method)

兩元組來決定http請求的安全合法性。當發現delete這樣請求是,予以拒絕。

對於soap如果我們想借助既有的**伺服器進行安全控制,會比較尷尬。因為**

伺服器需要解碼soap的協議。顯然這是不合理的。

快取方面:

http get請求被設計用來節省客戶端與伺服器之間網路傳輸帶來的開銷,

這也給客戶端實現cache機制提供了可能。rest的應用可以充分地挖掘

http協議對快取支援的能力,而所有經過快取伺服器的soap訊息總是http post,

快取伺服器如果 不解碼soap訊息體,沒法知道該http請求是否是想從伺服器獲得資料,

決定了基於soap應用的快取機制要遠比rest複雜。

總結:基於rest構建的系統,其系統的擴充套件能力要強於soap,這可以體現在它的統一介面抽象,

**伺服器支援,快取伺服器支援等諸多方面。並且,伴隨著web site as web services演進的

趨勢,還有由於rest設計實現的簡單性和強擴充套件性的特點,有理由相信,rest將會成為

web服務的乙個重要架構實踐領域。

出題人的RP值

題目描述 眾所周知,每個人都有自己的rp值 是個非負實數 膜別人可以從別人身上吸取rp值。然而當你膜別人時,別人也會來膜你,互膜一段時間後,你們就平分了兩人原有的rp值,當你膜過乙個人之後,你就不能再膜那個人了 出題人發現自己的rp值為x,出題人周圍有n個人,第i個人的rp值為a i 你要選擇膜哪些...

python rpc服務 python與RPC服務

rpc 1.什麼是rpc rpc 就是為解決服務之間資訊互動而發明和存在的。rpc remote procedure call 遠端過程呼叫,它是一種通過網路從遠端電腦程式上請求服務,而不需要了解底層網路技術的協議。rpc採用客戶機 伺服器模式。請求程式就是乙個客戶機,而服務提供程式就是乙個伺服器。...

Python通過RabbitMQ實現RPC

usr bin env python coding utf 8 import pika import uuid import time class fibonaccirpcclient object def init self 生成socket self.connection pika.blocki...