簡單對象訪問協議(SOAP,原為Simple Object Access Protocol的首字母縮寫)是交換數據的一種協議規范,使用在計算機網絡Web服務(web service)中,交換帶結構的信息。SOAP為了簡化網頁服務器(Web Server)從XML數據庫中提取資料時,節省去格式化頁面時間,以及不同應用程序之間按照HTTP通信協議,遵從XML執行資料互換,使其抽象于語言實現、平臺和硬件。此標準由IBM、微軟、UserLand和DevelopMentor在1998年共同提出,并得到IBM、蓮花(Lotus)、康柏電腦(Compaq)等公司的支持,于2000年提交給萬維網聯盟(World Wide Web Consortium,W3C),目前SOAP 1.1版是業界共同的標準,屬于第二代的XML協定(第一代具主要代表性的技術為XMLRPC以及WDDX)。
歷史沿革
SOAP最初代表“Simple Object Access Protocol”,但在標準1.2版發布后,這一縮寫不再使用,以避免與面向服務架構(Service-Oriented 建筑,SOA)產生混淆。SOAP由Dave Winer、Don Box、Bob Atkinson、Mohsen Al-Ghosein等人于1998年設計,起初僅作為一種對象訪問協議。后來,SOAP規范由萬維網聯盟的XML工作組負責維護。最新版本SOAP 1.2版在2003年6月24日成為W3C的推薦版本。
工作原理
SOAP通過因特網應用層協議作為其傳輸協議,通常使用HTTP協議進行傳輸,但也支持其他協議如SMTP。SOAP的消息格式采用XML編碼,確保了跨平臺和跨語言的兼容性。SOAP的核心技術包括HTTP和XML,前者用于實現SOAP的RPC風格傳輸,后者作為其編碼模式。SOAP能夠很好地適應中間介質和層次化的體系結構,同時也保持了簡單易用的特點。
SOAP消息結構
SOAP消息由若干構建模塊組成,包括必需的Envelope元素、可選的Header元素、必需的Body元素以及可選的Fault元素。這些元素構成了一個完整的SOAP消息,其中Body元素包含所有調用和響應信息,而Fault元素提供有關處理消息過程中發生的錯誤信息。SOAP消息必須遵守特定的語法規則,包括使用XML編碼、指定SOAP Envelope和Encoding命名空間、禁止包含DTD引用和XML處理指令。
SOAP消息示例
請求
```xml
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
```
回應
```XML
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
```
特點
- 可擴展性:SOAP允許客戶、服務器和協議本身不斷發展,而不影響現有應用程序。
- 簡單性:SOAP實現了客戶端發送請求、服務器返回結果的簡單交互模式,消息以XML封裝,符合HTTP協議要求。
- 中立性:SOAP不受制于特定的平臺、操作系統、目標模型或編程語言,傳輸和語言綁定的選擇由具體實現決定。
- 與編程語言無關:SOAP可以通過任何語言實現,只需確保客戶端發送正確的SOAP請求即可。
- 與平臺無關:SOAP能夠在任何操作系統環境中無縫運行。
參考資料 >
簡單對象訪問協議 — SOAP.廣州新悅網絡設備有限公司.2024-08-16
xml數據庫是什么意思.Worktile.2024-08-16
什么是HTTP協議.MBA智庫.2024-08-16