什么是SOAP
SOAP(Simple Object Access Protocol)一般指簡單對象訪問協議,簡單對象訪問協議是交換數據的一種協議規范,是一種輕量的、簡單的、基於XML(標准通用標記語言下的一個子集)的協議,它被設計成在WEB上交換結構化的和固化的信息.## 核心技術 SOAP采用了已經廣泛使用的兩個協議:HTTP 和XML(標准通用標記語言下的一個子集)。HTTP用於實現 SOAP 的RPC 風格的傳輸, 而XML 是它的編碼模式。采用幾行代碼和一個XML 解析器, HTTP 服務器( MS 的 IIS 或 Apache) 立刻成為SOAP 的 ORBS。SOAP 通訊協議使用 HTTP 來發送XML 格式的信息。HTTP與RPC 的協議很相似,它簡單、 配置廣泛,並且對防火牆比其它協議更容易發揮作用。HTTP 請求一般由 Web 服務器軟件(如 IIS 和Apache)來處理, 但越來越多的應用服務器產品正在支持HTTP。XML 作為一個更好的網絡數據表達方式( NDR)。SOAP 把 XML 的使用代碼化為請求和響應參數編碼模式, 並用HTTP 作傳輸。具體地講, 一個SOAP 方法可以簡單地看作遵循SOAP編碼規則的HTTP請求和響應, 一個 SOAP終端則可以看作一個基於HTTP 的URL, 它用來識別方法調用的目標。像CORBA/ IIOP一樣, SOAP不需要具體的對象綁定到一個給定的終端, 而是由具體實現程序來決定怎樣把對象終端標識符映像到服務器端的對象。
優點
1.可擴展的。SOAP 無需中斷已有的應用程序, SOAP 客戶端、 服務器和協議自身都能發展。而且SOAP 能極好地支持中間介質和層次化的體系結構。
2.簡單的。客戶端發送一個請求,調用相應的對象, 然后服務器返回結果。這些消息是XML 格式的,並且封裝成符合HTTP 協議的消息。因此,它符合任何路由器、 防火牆或代理服務器的要求。
3.完全和廠商無關。SOAP可以相對於平台、 操作系統、 目標模型和編程語言獨立實現。另外,傳輸和語言綁定以及數據編碼的參數選擇都是由具體的實現決定的。
4.與編程語言無關。SOAP 可以使用任何語言來完成,只要客戶端發送正確SOAP 請求( 也就是說, 傳遞一個合適的參數給一個實際的遠端服務器)。SOAP 沒有對象模型,應用程序可以捆綁在任何對象模型中。
5.與平台無關。SOAP 可以在任何操作系統中無需改動正常運行。
Why SOAP?
對於應用程序開發來說,使程序之間進行因特網通信是很重要的。
目前的應用程序通過使用遠程過程調用(RPC)在諸如 DCOM 與 CORBA 等對象之間進行通信,但是 HTTP 不是為此設計的。RPC 會產生兼容性以及安全問題;防火牆和代理服務器通常會阻止此類流量。
通過 HTTP 在應用程序間通信是更好的方法,因為 HTTP 得到了所有的因特網瀏覽器及服務器的支持。SOAP 就是被創造出來完成這個任務的。
SOAP 提供了一種標准的方法,使得運行在不同的操作系統並使用不同的技術和編程語言的應用程序可以互相進行通信。
參考
https://blog.csdn.net/baidu_25340817/article/details/82253826
https://www.w3school.com.cn/soap/soap_intro.asp
http協議與soap協議之間的區別 https://blog.csdn.net/ttxs99989/article/details/81294958