SOAP 包括三個部分:
- SOAP 封裝:它定義了一個框架,該框架描述了消息中的內(nèi)容是什么,誰應當處理它以及它是可選的還是必須的。
- SOAP 編碼規(guī)則:它定義了一種序列化的機制,用于交換應用程序所定義的數(shù)據(jù)類型的實例。
- SOAP RPC 表示:它定義了用于表示遠程過程調(diào)用和應答的協(xié)定。
SOAP 消息基本上是從發(fā)送端到接收端的單向傳輸,但它們常常結(jié)合起來執(zhí)行類似于請求 / 應答的模式。所有的 SOAP 消息都使用 XML 編碼。一條 SOAP 消息就是一個包含有一個必需的 SOAP 的封裝包,一個可選的 SOAP 標頭和一個必需的 SOAP 體塊的 XML 文檔。
把 SOAP 綁定到 HTTP 提供了同時利用 SOAP 的樣式和分散的靈活性的特點以及 HTTP 的豐富的特征庫的優(yōu)點。在 HTTP 上傳送 SOAP 并不是說 SOAP 會覆蓋現(xiàn)有的 HTTP 語義,而是 HTTP 上的 SOAP 語義會自然的映射到 HTTP 語義。在使用 HTTP 作為協(xié)議綁定的場合中, RPC 請求映射到 HTTP 請求上,而 RPC 應答映射到 HTTP 應答。然而,在 RPC 上使用 SOAP 并不僅限于 HTTP 協(xié)議綁定。
![]() | 協(xié)議結(jié)構(gòu) |
SOAP 消息格式: SOAP 標頭 <SOAP-ENV: Envelope Attributes> <SOAP-ENV:Body Attributes </SOAP-ENV:Body> </SOAP-ENV:Envelope> 示例 1 : 內(nèi)嵌在 HTTP 請求中的 SOAP 消息 |
內(nèi)嵌在 HTTP 請求中的 SOAP 消息 |
下面是一個包含將 SOAP 消息作為負載的 HTTP 應答消息。 示例 2 : 內(nèi)嵌在 HTTP 應答中的 SOAP 消息 |
內(nèi)嵌在 HTTP 應答中的 SOAP 消息 |
相關(guān)協(xié)議 | HTTP、XML、RPC、MIME、SMTP |
組織來源 | 簡單對象訪問協(xié)議(SOAP)由微軟公司提出。 |
相關(guān)鏈接 | http://www.w3.org/TR/2000/NOTE-SOAP-20000508/ : Simple Object Access Protocol (SOAP) |