SOAP
2019獨角獸企業重金招聘Python工程師標準>>>
SOAP是什么?
Simple Object Access Protocol
SOAP:簡單對象訪問協議,
簡單對象訪問協議(SOAP)是一種輕量的、簡單的、基于 XML 的協議,它被設計成在 WEB 上交換結構化的和固化的信息。
SOAP 可以和現存的許多因特網協議和格式結合使用,包括超文本傳輸協議(HTTP),簡單郵件傳輸協議(SMTP),多用途網際郵件擴充協議(MIME)。
它還支持從消息系統到遠程過程調用(RPC)等大量的應用程序。
?
之所以說是簡單,是因為它是基于已經廣泛使用的兩個協議:HTTP和XML,所以業界把這種技術稱為“它是第一個沒有發明任何新技術的技術",
之所以說是對象,是因為把訪問的Web服務稱為對象,
既然服務是對象,那么服務肯定有相關的屬性和調用行為,這些屬性和行為是通過WSDL來描述的。
?
SOAP允許一個應用程序向另一個應用程序發送XML消息,SOAP消息是從SOAP發送者傳至SOAP接受者的單路消息,任何應用程序均可做為發送者或接受者.
SOAP僅僅定義消息結構和消息處理的協議(XML).與底層的傳輸協議是獨立的.因此SOAP可以去和多種協議進行傳輸(HTTP,SMTP等);
SOAP允許您繞過防火墻,SOAP將被作為 W3C 標準來發展.
?
請注意,SOAP是被設計成在web上交換結構化和固化的消息.
SOAP的構成是什么?
SOAP依賴于XML文檔來構建,一條SOAP消息其實就是一份特定的XML文檔,SOAP消息包含如下3個主要元素:
????必須的<Envelop…/> 根元素,SOAP消息對應的XML文檔以該元素作為根元素.
????????可選的<Header…/>元素,包含SOAP消息的頭信息,是可選,請注意.我一般無視 = =!
????????必需的<Body../>元素,包含所有的調用和響應信息.
????????可選的 Fault 元素,提供有關在處理此消息所發生錯誤的信息.(1.1沒有,1.2有)
<Envelop…/>通常只能包含2個子元素,第一個是可選的Header,第二個就是Body了.
下面就是一個SOAP消息的示例:
所有以上的元素均被聲明于針對 SOAP 封裝的默認命名空間中:
http://www.w3.org/2001/12/soap-envelope
以及針對 SOAP 編碼和數據類型的默認命名空間:
http://www.w3.org/2001/12/soap-encoding
其實上面2個網站我都沒細看,哈哈……貼出來先.
Why SOAP?
對于應用程序開發來說,使程序之間進行因特網通信是很重要的。
目前的應用程序通過使用遠程過程調用(RPC)在諸如 DCOM 與 CORBA 等對象之間進行通信,但是 HTTP 不是為此設計的。RPC 會產生兼容性以及安全問題;防火墻和代理服務器通常會阻止此類流量。
通過 HTTP 在應用程序間通信是更好的方法,因為 HTTP 得到了所有的因特網瀏覽器及服務器的支持。SOAP 就是被創造出來完成這個任務的。
SOAP 提供了一種標準的方法,使得運行在不同的操作系統并使用不同的技術和編程語言的應用程序可以互相進行通信。
轉載于:https://my.oschina.net/zhaoqian/blog/98614
總結
- 上一篇: Phase retrieval交替投影
- 下一篇: 【华为云 ModelArts-Lab A