WebServices : REST vs SOAP

NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

WebService: REST vs SOAP

全球資訊網正經歷海量資料進化到基於服務的演進,其中web service正是這次演進的重要部分。

什麼是web service?

web service是兩個裝置跨越全球資訊網的連線方式。W3C給web service給出的定義是:支援跨越網路的機器和機器之間互動的軟體系統。他有機器可理解格式表達的介面(比如WSDL)。與之互動的其他系統根據預先定義的規則使用SOAP訊息來互動,典型的,使用HTTP協議使用XML序列化來和其他系統互聯。
Web-service-diagram.png
Roy Fielding提出了更可靠的web應用架構:表示狀態轉移(REST)。在REST風格中,請求和應答是圍繞著資源的表示狀態來構建的。一個資源(比如:一個人),可以是任何被定位的東西。資源的表示常常是一個文件(比如XML或是JSON)表示當前或預期的資源狀態。

什麼是SOAP

SOAP是用於實現Web Service時交換結構化資訊的協議。它的訊息格式使用XML。他和傳輸協議是不相關的(可以使用HTTP,FTP,TCP,UDP,或者命名管道)。基於SOAP的服務嚴格的定義了來回傳遞的訊息格式。一個SOAP訊息上面含有資料和操作,頭資訊和失敗的錯誤資訊。由WS-Security提供安全標準,然後它是端對端的。SOAP提供了讓服務想客戶端描述自己的機制(WSDL),以及發現(UDDI)。SOAP同樣提供了可靠的訊息機制(WS-ReliableMessageing),內建了重試並提供了端到端的可靠機制。

什麼是REST

表示狀態轉移(REST)是一種用來設計網路應用的架構風格。

  • 相關的客戶端和服務端各自傳送請求和響應。
  • 請求和響應圍繞著資源的表示轉移來構建(比如 User的JSON請求表示)
    REST將一切東西抽象成資源(比如 使用者,股票等),每個資源都實現了標準的介面(典型的是HTTP介面),資源具有名字和地址(URIs),每個資源都具有1個或多個表示(比如JSON 或 XML),在網路上使用HTTP傳遞。

REST網路API(或REST網路服務)是使用HTTP和REST 原則實現的網路API。RESTful API更關心使用者介面(而不是資料儲存)。提供了跨平臺和簡化服務元件(無狀態),每一個來自客戶端的請求都包括全部的狀態資訊,伺服器不會再session中儲存客戶的上下文。

SOAP vs REST

SOAP一個主要的有點是WSDL服務描述。可以自動發現服務並生成服務代理客戶端。在版本2.0中,WSDL支援所有的HTTP謂詞並能很好的提供RESTful服務文件,但是WSDL相對來說比較臃腫.
HTTPS對RESTful服務的安全提供支援,僅是point-to-point的。缺乏標準的資訊系統和異常處理。而SOAP具有內建的成功/重試機制,且提供end-to-end的基於SOAP的可靠機制。
RESTful服務一個主要的有點是其資料表示的靈活性,比如你可以序列化你的資料到XML或JSON格式。RESTful API是易於理解的,一個使用URI的元素 HTTP謂詞。
同時RESTful服務也是輕量的,相比xml,沒有額外的標籤。呼叫RESTful API時,只需要一個瀏覽器或任何一臺聯網的裝置。

相關文章

前端開發 最新文章