簡述SOAP協議

8個月過去了,依舊清楚的記得研究生複試時,老師問我SOAP協議是啥(當時還不知道這個協議的名字到底該怎麼寫),今天偶然之間看見了一篇博客提到了SOAP(見下圖),於是就查了一下SOAP協議。
在這裏插入圖片描述

SOAP 是基於 XML 的簡易協議,可使應用程序在 HTTP 之上進行信息交換。
更簡單地說:SOAP 是用於訪問網絡服務的協議

什麼是 SOAP?

  • SOAP 指簡易對象訪問協議
  • SOAP 是一種通信協議
  • SOAP 用於應用程序之間的通信
  • SOAP 是一種用於發送消息的格式
  • SOAP 被設計用來通過因特網進行通信
  • SOAP 獨立於平臺
  • SOAP 獨立於語言
  • SOAP 基於 XML
  • SOAP 很簡單並可擴展
  • SOAP 允許您繞過防火牆
  • SOAP 將被作爲 W3C 標準來發展

SOAP是一種輕量的、簡單的、基於 XML 的協議,它被設計成在 WEB 上交換結構化的和固化的信息。 SOAP 可以和現存的許多因特網協議和格式結合使用,包括超文本傳輸協議( HTTP)、簡單郵件傳輸協議(SMTP)、多用途網際郵件擴充協議(MIME)。它還支持從消息系統到遠程過程調用(RPC)等大量的應用程序。

SOAP協議可以簡單地理解爲:SOAP=RPC+HTTP+XML,從而允許服務提供者和服務客戶經過防火牆在Internet上進行通信交互。

  • HTTP作爲通信協議
  • RPC(Remote Procedure Call Protocol,遠程過程調用協議)作爲一致性的調用途徑
  • XML作爲數據傳送的格式
  • SOAP封裝(envelop):定義了一個框架,描述消息中的內容是什麼,是誰發送的,誰應當接受並處理它以及如何處理它們;
  • SOAP編碼規則(encoding rules):定義了一種序列化機制,用於表示應用程序需要使用的數據類型的實例;
  • SOAP RPC表示(RPC representation):定了一個協定,用於表示遠程過程調用和應答;
  • SOAP綁定(binding):定義了SOAP使用哪種協議交換信息。使用HTTP、TCP、UDP都可以。

使用SOAP的原因

SOAP 提供了一種標準的方法,使得運行在不同的操作系統、使用不同的技術和編程語言的應用程序可以互相進行通信。

SOAP的優點

  • 可擴展:SOAP 無需中斷已有的應用程序, SOAP 客戶端、 服務器和協議自身都能發展,而且SOAP 能極好地支持中間介質和層次化的體系結構。
  • 簡單:客戶端發送一個請求,調用相應的對象, 然後服務器返回結果。這些消息是XML 格式的,並且封裝成符合HTTP 協議的消息。因此,它符合任何路由器、 防火牆或代理服務器的要求。
  • 完全和廠商無關:SOAP可以相對於平臺、 操作系統、 目標模型和編程語言獨立實現。另外,傳輸和語言綁定以及數據編碼的參數選擇都是由具體的實現決定的。
  • 與編程語言無關:SOAP 可以使用任何語言來完成,只要客戶端發送正確SOAP 請求( 即傳遞一個合適的參數給一個實際的遠端服務器)。SOAP 沒有對象模型,應用程序可以捆綁在任何對象模型中。
  • 與平臺無關:SOAP 可以在任何操作系統中無需改動正常運行

SOAP和HTTP有什麼區別?

二者都是底層的通信協議

請求包的格式不同:SOAP是XML格式,HTTP是純文本格式
SOAP可以傳遞結構化的數據,HTTP只能傳輸純文本數據
SOAP相對HTTP(post/get)由於要進行XML解析,速度可能會有所降低

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