簡單對象訪問協議 [編輯]

維基百科,自由的百科全書



(重定向自 SOAP)



跳轉至: 導航、 搜索



網絡傳輸協議

應用層

  • DHCP
  • DHCPv6
  • DNS
  • FTP
  • Gopher
  • HTTP
  • IMAP4
  • IRC
  • NNTP
  • XMPP
  • POP3
  • SIP
  • SMTP
  • SNMP
  • SSH
  • TELNET
  • RPC
  • RTCP
  • RTP
  • RTSP
  • SDP
  • SOAP
  • GTP(英語:GPRS Tunnelling Protocol)
  • STUN
  • NTP
  • SSDP
  • TLS/SSL
  • 更多

傳輸層

  • TCP
  • UDP
  • DCCP
  • SCTP
  • RSVP
  • PPTP
  • 更多

網絡層

  • IP(IPv4 IPv6)
  • ICMP
  • ICMPv6
  • IGMP
  • IS-IS
  • IPsec
  • BGP
  • RIP
  • OSPF
  • ARP
  • RARP
  • 更多

數據鏈路層

  • Wi-Fi(IEEE 802.11)
  • WiMAX(IEEE 802.16)
  • ATM
  • DTM
  • 令牌環
  • 以太網路
  • FDDI
  • 幀中繼
  • GPRS
  • EV-DO
  • HSPA
  • HDLC
  • PPP
  • L2TP
  • ISDN
  • STP
  • 更多

物理層

  • 以太網
  • 調制解調器
  • 電力線通信
  • 同步光網絡
  • G.709
  • 光導纖維
  • 同軸電纜
  • 雙絞線
  • 更多












簡單對象訪問協議SOAP,全寫為Simple Object Access Protocol)是交換數據的一種協議規範,使用在計算機網絡Web服務(web service)中,交換帶結構信息。SOAP為了簡化網頁服務器(Web Server)從XML數據庫中提取數據時,節省去格式化頁面時間,以及不同應用程序之間按照HTTP通信協議,遵從XML格式執行資料互換,使其抽象於語言實現、平台和硬件。此標準由IBM、Microsoft、UserLand和DevelopMentor在1998年共同提出,並得到IBM,蓮花(Lotus),康柏(Compaq)等公司的支持,於2000年提交給萬維網聯盟(World Wide Web Consortium;W3C),目前SOAP 1.1版是業界共同的標準,屬於第二代的XML協定(第一代具主要代表性的技術為XML-RPC以及WDDX)。

用一個簡單的例子來説明SOAP使用過程,一個SOAP消息可以發送到一個具有Web Service功能的Web站點,例如,一個含有房價信息的數據庫,消息的參數中標明這是一個查詢消息,此站點將返回一個XML格式的信息,其中包含了查詢結果(價格,位置,特點,或者其他信息)。由於數據是用一種標準化的可分析的結構來傳遞的,所以可以直接被第三方站點所利用。



目錄


 [隱藏] 


  • 1 相關定義
  • 2 歷史
  • 3 傳輸方式
  • 4 語法規則
  • 5 SOAP消息實例
  • 5.1 請求
  • 5.2 迴應
  • 6 參見
  • 7 外部鏈接



相關定義[編輯]

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

把SOAP綁定到HTTP提供了同時利用SOAP的樣式和分散的靈活性的特點以及HTTP的豐富的特徵庫的優點。在HTTP上傳送SOAP並不是説SOAP會覆蓋現有的HTTP語義,而是HTTP上的SOAP語義會自然的映射到HTTP語義。在使用HTTP作為協議綁定的場合中,RPC請求映射到HTTP請求上,而RPC應答映射到HTTP應答。然而,在RPC上使用SOAP並不僅限於HTTP協議綁定。

歷史[編輯]






SOAP曾經代表“Simple Object Access Protocol”,但是這種縮寫已經在標準的1.2版後被廢止了。1.2版在2003年6月24日成為W3C的推薦版本。這種縮寫容易與SOA——Service-oriented architecture產生歧義,雖然它們之間存在非常大的差異。

SOAP由Dave Winer, Don Box,Bob Atkinson, Mohsen Al-Ghosein於1998年設計,當時只作為一種對象訪問協議。現在,SOAP規範由 萬維網聯盟的 XML工作組維護。

傳輸方式[編輯]

SOAP使用因特網應用層協議作為其傳輸協議。SMTP以及HTTP協議都可以用來傳輸SOAP消息,但是由於HTTP在如今的因特網結構中工作得很好,特別是在網絡防火牆下仍然正常工作,所以被廣泛採納。SOAP亦可以在HTTPS上傳輸。

SOAP的消息格式採用XML。

語法規則[編輯]

  • SOAP消息必須用XML來編碼
  • SOAP消息必須使用SOAP Envelope命名空間
  • SOAP消息必須使用SOAP Encoding命名空間
  • SOAP消息不能包含DTD引用
  • SOAP消息不能包含XML處理指令

SOAP消息實例[編輯]

請求[編輯]



<soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
    <req:echo xmlns:req="http://localhost:8080/wxyc/login.do">
      <req:category>classifieds</req:category>
    </req:echo>
  </soapenv:Body>
</soapenv:Envelope>



迴應[編輯]



<soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
  <soapenv:Header>
    <wsa:ReplyTo>
      <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
    </wsa:ReplyTo>
    <wsa:From>
      <wsa:Address>http://localhost:8080/axis2/services/MyService</wsa:Address>
    </wsa:From>
    <wsa:MessageID>ECE5B3F187F29D28BC11433905662036</wsa:MessageID>
  </soapenv:Header>
  <soapenv:Body>
    <req:echo xmlns:req="http://localhost:8080/axis2/services/MyService/">
      <req:category>classifieds</req:category>
    </req:echo>
  </soapenv:Body>
</soapenv:Envelope>



參見[編輯]

  • XML
  • XML-RPC
  • WDDX
  • WSDL
  • UDDI
  • WS-Security