XML Web Service Wire 格式
二進位通訊協定 (例如 DCOM) 是由架在專屬通訊協定上面的方法要求層所構成。此類通訊協定無助於建立通用的 XML Web Service。這不表示不讓您在 XML Web Service 案例中使用此類通訊協定,但是使用它們會有缺點,缺點在於這些通訊協定會依賴其基礎系統的特定架構,因而限制了潛在用戶端的適用範圍。
或者,您可以建構 XML Web Service 來使用一或多個開放式通訊協定,例如 HTTP 和 SOAP 的組合。支援不同通訊協定所需的基礎結構會因情況而有所不同。
XML Web Service 並不侷限於提供遠端程序呼叫 (RPC) 存取。您可以建置它們來交換結構化資訊 (例如,採購訂單和發票),也可以使用它們來自動化並連接內部與外部商務程序。
HTTP-GET 和 HTTP-POST
HTTP-GET 和 HTTP-POST 是標準的通訊協定,它們會使用超文字傳輸協定 (Hypertext Transfer Protocol,HTTP) 動詞命令,對參數進行編碼,再以名稱/值組的形式,將這些參數與相關聯的要求語意 (Semantics) 一起傳遞。每個都是由一系列 HTTP 要求標頭所組成,這些標頭除了別的用途之外,還會定義用戶端向伺服器要求的項目;如果要求成功,伺服器便會以一連串的 HTTP 回應標頭和所要求的資料來回應。
HTTP-GET 會使用 MIME 類型 application/x-www-form-urlencoded (這會附加至處理要求之伺服器的 URL),以經過 URL 編碼 (Urlencoded) 的文字形式來傳遞參數。URL 編碼方式 (Urlencoding) 是一種字元編碼形式,可確保傳遞的參數是由一致性文字組成,例如將空格編碼為 %20。所附加的參數也可以稱為查詢字串。
與 HTTP-GET 相同,HTTP-POST 參數也會經過 URL 編碼。但是,並不會當做 URL 的一部分來傳遞,而是在實際的 HTTP 要求訊息內傳遞名稱/值組。
SOAP
SOAP 是一種簡單的輕量型 XML 通訊協定,可在 Web 上交換結構化和型別資訊。SOAP 的整體設計目標是要盡量保持簡單並提供最起碼的功能。這個通訊協定會定義不包含任何應用程式或傳輸語意的訊息架構。因此,不但是模組化的,而且也具備非常好的擴充性。
透過標準傳輸通訊協定進行傳輸,SOAP 就可以使用網際網路現有的開放式架構,而且很容易獲得任何支援最基本網際網路標準的任意系統功能認可。儘管支援符合 SOAP 標準之 XML Web Service 所需的基礎結構看起來可能有點太過簡單,但卻威力十足,正是因為它在網際網路現有基礎結構上增加的部分相當少,反而有助於廣泛存取以 SOAP 建置的服務。
SOAP 通訊協定規格由四個主要部分組成。第一個部分定義封裝資料時必須使用的可延伸封套。SOAP 封套會定義 SOAP 訊息,而且是在 SOAP 訊息處理程式之間進行交換的基本單位。這是規格中唯一強制的部分。
SOAP 通訊協定規格的第二個部分定義用於表示應用程式定義之資料型別和導向圖形的選擇性資料編碼規則,以及用於序列化非語法資料模型的統一模型。
第三個部分定義 RPC 樣式 (要求/回應) 的訊息交換模式。每個 SOAP 訊息都是單向傳輸。雖然 SOAP 的根項目採用 RPC,但是不侷限於要求/回應機制。XML Web Service 通常會結合 SOAP 訊息來實作這種模式,但是 SOAP 並未強制規定訊息交換模式,而且這個部分在規格中還是選擇性的。
此規格的第四個部分定義 SOAP 和 HTTP 之間的繫結。不過,這個部分也是選擇項。您可以使用 SOAP 搭配任何能夠傳輸 SOAP 封套的傳輸通訊協定或機制,其中包括 SMTP、FTP,甚至是磁片。
如需 SOAP 規格,請參閱 W3C 網站 (http://www.w3.org/TR/soap)。
請參閱
概念
Copyright © 2007 by Microsoft Corporation. All rights reserved.