XML Web Service初體驗: HTTP-GET, HTTP-POST and SOAP的比較

來源:互聯網
上載者:User

標籤: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的比較

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.