歡迎訪問新悅網絡設備有限公司
什么是 SOAP(簡單對象訪問協(xié)議)?
SOAP(簡單對象訪問協(xié)議)是一種消息協(xié)議,使應用程序的分布式元素能夠進行通信。SOAP 可以承載多種標準協(xié)議,包括與 Web 相關的超文本傳輸??協(xié)議 ( HTTP )。
SOAP 是作為具有不同編程語言的應用程序的中間語言而開發(fā)的,使這些應用程序能夠通過 Internet 相互通信。SOAP 靈活且獨立,這使得開發(fā)人員能夠用不同的語言編寫 SOAP 應用程序編程接口 ( API ),同時添加特性和功能。
SOAP 是一種輕量級協(xié)議,用于創(chuàng)建 Web API,通常使用可擴展標記語言 ( XML )。它支持多種互聯(lián)網通信協(xié)議、HTTP、簡單郵件傳輸協(xié)議 (SMTP) 和傳輸控制協(xié)議。SOAP 方法定義了 SOAP 消息的處理方式、包含的功能和模塊、支持的通信協(xié)議以及 SOAP 消息的構造。SOAP 使用 XML 信息集作為消息格式,并依賴于應用層協(xié)議(如 HTTP)進行消息傳輸和協(xié)商。
SOAP 構建塊和消息結構示例
簡單對象訪問協(xié)議作為一種規(guī)范,定義了發(fā)送到 Web 服務和客戶端應用程序的 SOAP 消息。SOAP 消息是由以下三個基本構建塊組成的 XML 文檔:
- SOAP信封將所有數(shù)據封裝在消息中,并將 XML 文檔標識為 SOAP 消息。
- Header元素包含有關 SOAP 消息的附加信息。例如,該信息可以是調用應用程序使用的身份驗證憑證。
- Body元素包括需要從 Web 服務發(fā)送到調用應用程序的實際消息的詳細信息。該數(shù)據包括呼叫和響應信息。
故障消息是可選的第四個構建塊。如果生成 SOAP 錯誤,則會以 HTTP 500 錯誤的形式返回。故障消息包含故障代碼、字符串、參與者和詳細信息。
SOAP 是如何工作的?
SOAP 請求很容易生成和處理響應。首先,客戶端使用 XML 文檔生成服務請求。接下來,SOAP 客戶端將 XML 文檔發(fā)送到 SOAP 服務器。當服務器收到 SOAP 消息時,它會將該消息作為服務調用發(fā)送到所請求的服務器端應用程序。包含所請求參數(shù)、返回值和客戶端數(shù)據的響應首先返回到 SOAP 請求處理程序,然后返回到發(fā)出請求的客戶端。SOAP 請求和響應均使用安全超文本傳輸??協(xié)議 ( HTTPS ) 或類似的協(xié)議(如 HTTP)進行傳輸。
SOAP 的優(yōu)點和缺點
SOAP 是面向服務的體系結構 ( SOA ) 和Web 服務規(guī)范的一個組成部分。
SOAP 的優(yōu)點包括以下幾點:
- 獨立于平臺和操作系統(tǒng)。SOAP 可以通過多種協(xié)議承載,從而支持 Windows 和 Linux 上使用不同編程語言的應用程序之間的通信。
- 適用于 HTTP 協(xié)議。盡管 SOAP 可與許多不同的協(xié)議配合使用,但 HTTP 是 Web 應用程序使用的默認協(xié)議。
- 可以通過不同的網絡和安全設備進行傳輸。SOAP 可以輕松地穿過防火墻,而其他協(xié)議可能需要特殊的調節(jié)。
然而,其缺點包括以下幾點:
- 沒有通過引用傳遞數(shù)據的規(guī)定。如果同時傳遞同一對象的多個副本,這可能會導致同步問題。
- 速度。SOAP的數(shù)據結構基于XML。XML 在很大程度上是人類可讀的,這使得理解 SOAP 消息變得相當容易。然而,與通用對象請求代理架構 (CORBA) 及其容納二進制數(shù)據的遠程過程調用 ( RPC ) 協(xié)議相比,這也使得消息相對較大。因此,CORBA 和 RPC 速度更快。
- 不像其他方法那么靈活。盡管 SOAP 很靈活,但較新的方法(例如 RESTful 架構)使用 XML、JavaScript 對象表示法、YAML或任何所需的解析器,這使得它們比 SOAP 更靈活。
SOAP API
SOAP 是一種幾乎總是在 Web 服務或 SOA 框架上下文中使用的協(xié)議。因此,它的 API 通常被 SOA 的更高級別接口隱藏。SOA API中間件工具可用于幾乎所有現(xiàn)代編程語言,并且 Microsoft 提供了各種 .NET SOAP 和 SOA 工具。
SOAP 與 REST
SOAP 旨在將傳統(tǒng)的整體應用程序分解為多組件、分布式形式,而不會失去安全性和控制力。相比之下,表述性狀態(tài)傳輸 ( REST ) 是一種基于 HTTP 協(xié)議和 Web 服務器支持客戶端的方式的分布式計算交互模型?;?HTTP 的 REST 幾乎始終是現(xiàn)代微服務開發(fā)和通信的基礎。RESTful API 使用 HTTP 請求來獲取、放置、發(fā)布和刪除數(shù)據。
REST over HTTP 簡單、靈活、輕量,除了提供一種交換信息的方式之外,幾乎沒有提供什么。SOAP 也可以依賴于 HTTP,但它連接了一組復雜的分布式計算工具的元素(Web 服務和 SOA 框架)以及應用程序組件,這構成了整個面向服務的框架的一部分。
簡單對象訪問協(xié)議的未來
SOAP 是第一個廣泛使用的用于在面向服務的體系結構中連接 Web 服務的協(xié)議。如今,分布式應用程序的現(xiàn)代開發(fā)很大程度上基于 RESTful 原則。SOAP 幾乎總是局限于遺留平臺。SOAP 仍在使用的一個領域是處理在線事務的應用程序,因為它是一種更加嚴格且由協(xié)議驅動的 API 風格。
- 01-20
- 01-20
- 01-20
- 01-20
- 01-17
- 01-17
- 01-17
- 01-16
最新內容
- 11-11
- 10-21
- 09-23
- 08-02
- 07-24
- 07-18
- 07-15
- 07-10
知識庫