標籤:value 標準 不能 解壓縮 val depend 名稱 pos 技術
、在ASP.NET 中,XML Web Service支援三種協議來與使用者交流資料。這三種協議分別是:
1. SOAP:Simple Object Access Protocol
2. HTTP-GET
3. HTTP-POST
1.首先我們先來理解一下這三者的大概定義。
在這三種協議中,SOAP是XML Web Service最常用到的連線協定。與HTTP相比,SOAP顯的更為複雜,但卻擁有更強的接受能力。SOAP是一種以XML為基礎的協議,它提供一種將資料打包(Packaging)和 編碼(Encoding)的方法,以用於網路的資料轉送。任意一個使用者都可以使用SOAP協議與任何一個XML Web Service進行通訊,甚至於說這個XML Web Service不是建立在.NET 平台上的,比如說Java的,我們都可以利用SOAP來進行資料轉送。因此可見,SOAP也是Language Independent.(語言獨立性)
HTTP(Hypertext Transfer Protocol) 已經是眾所周知的協議了,它是XML Web Service資料轉送的標準,這包括了在使用SOAP傳輸資料的時候。HTTP將SOAP 訊息壓縮,然後以它的形式進行網路傳輸。然而當我們談及在XML Web Service下使用HTTP-GET和HTTP-POST的時候,我們實事上在談有關單獨使用HTTP調用XML Web Service中的方法的能力,這裡我說的單獨使用,指的是不使用SOAP。
在HTTP中,GET 和 POST並不是一種協議,它們是可以用來與Web Service互動的幾種方法中的其中二種。然而,這二種方法的傳送參數和資料的能力使它們變成了一種簡單的,非常適合用來調用XML Web Service的工具。
2.HTTP-GET 和 HTTP-POST 的比較
這二者最大的區別在於資料是如何與要求的訊息捆綁在一起的。
HTTP-GET的處理特徵如下:
。將資料添加到URL
。利用一個問號(”?”)代表URL地址的結尾與資料的開端。
。每一個資料的元素以 名稱/值 (name/value) 的形式出現。
。利用一個分號(“;”)來區分多個資料元素。
HTTP-POST的處理特徵如下:
。將資料包括在HTTP主體中。
。同樣的,資料的元素以 名稱/值 (name/value) 的形式出現。
。但是每一個資料元素分別佔用主體的一行。
從這二者不同的處理特徵,可以看出它們的不同之處,而大家也可以利用IE開啟一個Web Service檔案,在頁面中,IE會顯示出二種的資料的不同之處。
3.HTTP和SOAP的比較
HTTP-GET 和 HTTP-POST 提供了一個簡單的與XML Web Service互動的工具,與SOAP相比,它有以下幾點好處:
。 能夠非常容易的建立正確的HTTP-GET 和 HTTP-POST訊息,當面向的客戶是不能使用SOAP的客戶時,HTTP-GET 和 HTTP-POST是最好的選擇。
。響應HTTP-GET 和 HTTP-POST的訊息,並不需要複雜的XML處理。響應之中包括了XML,但它有一個簡單的架構並能夠輕易的利用一般的技術處理響應。這些特點使HTTP-GET 和HTTP-POST對於不支援XML的平台來說,變的異常的有用。
。HTTP-GET 和 HTTP-POST訊息比起SOAP訊息來說,更為簡單。這有利於提高整體的效能。
然而,有得必有失,有好必有壞,它們也存在不可忽略的缺點:
。不能夠利用HTML調用XML Web Service中的以複雜資料類型為參數的方法。
。你可以調用XML Web Service中傳回值為複雜資料類型的方法,但是響應將僅包括複雜資料類型中各個地區中的名字/值,並且返回的值並沒有結構可言。你必須手動的將資料解壓縮到WSDL檔案。
。在HTTP中,你不能使用reference進行參數的傳輸。
。使用HTTP與XML Web Service進行交流,不是一個agreed-to工業標準技術。雖然HTTP會在ASP.NET Web Application中與XML Web Service正常工作,但不保證它在其它的環境下正常工作。
這是我對XML Web Service的初步認識,難免有些錯誤。如果不對,還請大家指正。
XML Web Service初體驗: HTTP-GET, HTTP-POST and SOAP的比較