restful webservice SOAP webservice


爲了說明這個問題,必須的糾正一下咱們對HTTP的認識前端

首先回顧一下OSI七層模型web

OSI(Open System Interconnection,開放系統互連)七層模型數據庫

7 應用層 安全

6 表示層 restful

5 會話層 網絡

4 傳輸層 數據結構

3 網絡層 架構

2 數據鏈路層 less

1 物理層 分佈式

HTTP並非一種傳輸層的「傳輸協議」(第四層),而是一種應用層的「轉移協議」(最高層)。

SOAP類型的WebService就是最好的例子,SOAP消息徹底就是將Http協議做爲消息承載,

以致於對於Http協議中的各類參數(例如編碼,錯誤碼等)都置之不顧。
 其實,它有着很是豐富的語義,Http協議所抽象的get,post,put,delete就比如數據庫中最基本的增刪改查,而互聯網上的各類資源就比如數據庫中的記錄。

restful webservice

Rest(Representional state transfer)
WEB的在世界範圍類的普及和成功,人們從技術角度對它的總結,既--分佈式架構,注意強調的是架構風格-architectural style.
是一種全新的Web開發思惟方式, 一種基於Http協議來資源操做的思想,是基於URI來設計系統的架構。
那麼它的特色主要由如下五點
1.面向資源(resource)
2.每一個資源都對應惟一的URI uniform resource identifier
3.抽象資源的操做,使用通用鏈接接口來操做資源 (generic connector interface)
4.對資源的操做不會改變URI
5.全部的操做無狀態 (stateless)
能夠看出REST 抽象資源的操做跟HTTP 不謀而合,將Http協議的設計初衷做了詮釋。



SOAP/WSDL webservice 

爲了包裝RPC(Remote Procedure Call) 的請求信息,推出了XML-RPC,但XML-RPC只能使用有限的數據類型種類和一些簡單的數據結構。
因而就出現了SOAP
SOAP(Simple Object Access Protocol) 是基於 XML 的結構化數據交換。SOAP能夠和多種傳輸協議綁定(Binding),如包括超文本傳輸協議( HTTP),簡單郵件傳輸協議(SMTP),多用途網際郵件擴充協議(MIME)使用底層協議交換信息,如: HTTP。

理論上,SOAP就是一段xml,你能夠經過HTTP,SMTP等發送它(複製到軟盤上,叫快遞公司送去也行)。

SOAP跟HTTP 的關係

SOAP在HTTP協議的基礎之上,一個基於XML的協議。即HTTP + XML = SOAP或者說 SOAP方式是一個遵守SOAP編碼規則的HTTP請求/響應。

WSDL

WSDL是基於SOAP通訊時的描述語言,WSDL是用來描述SOAP的,也是一段xml。

那麼,咱們能夠從如下幾個方面去比較它們的優劣

1.成熟,規範

SOAP 比REST 成熟,規範,受到不少廠商的支持,REST 只是提供了思想,因此你們還處在各自爲戰的局面。

2.伸縮性

 REST 是基於HTTP協議實現資源操做,大大的下降了開發複雜度和伸縮性。

3.效率,易用

SOAP根據需求在不斷的擴展協議的內容,致使處理性能降低,學習成本上升。而REST 採用 ROA(Resource-Oriented Architecture,面向資源的體系架構)進行設計而且融合WEB2.0前端技術,提升了開發效率。

4.安全性

SOAP 採用XML-Security和XML-Signature兩個規範組成了WS-Security來實現安全控制,REST 目前沒有任何說明。

相關文章
相關標籤/搜索