1. 程式人生 > >淺談WebService SOAP、Restful、HTTP(post/get)請求

淺談WebService SOAP、Restful、HTTP(post/get)請求

定義 傳遞 restfu 訪問 用戶 符號 方式 http協議 簡單

摘要: Webservice 兩種實現方式跟HTTP(post/get) 直接請求各個優缺點,以及如何判斷選擇使用哪一種。

HTTP-GET 和 HTTP-POST

HTTP-GET和HTTP-POST是標準協議,他們使用HTTP(超文本傳輸協議)謂詞(謂詞是指條件表達式的求值返回真或假的過程。)對參數進行編碼並將參數作為名稱/值對傳遞,還使用關聯的請求語義。每個協議都包含一系列HTTP請求標頭,HTTP請求標頭及其他一些信息定義客戶端向服務器請求哪些內容,哪個服務器用一系列HTTP響應標頭和所請求的數據進行響應。

HTTP-GET 使用 MIME 類型 application/x-www-form-urlencoded(將追加到處理請求的服務器的 URL 中)以 URL 編碼文本的形式傳遞其參數。 URL 編碼是一種字符編碼形式,可確保傳遞的參數中包含一致性文本,例如將空格編碼為 %20,其它符號轉換為%XX,其中XX為該符號以16進制表示的ASCII(或ISO Latin-1)值。 追加的參數也稱為查詢字符串。

與 HTTP-GET 類似,HTTP-POST 參數也是 URL 編碼的。 但是,名稱/值對是在實際的 HTTP 請求消息內部傳遞的,而不是作為 URL 的一部分進行傳遞。

我們日常網站、系統都是使用這種形式進行訪問我們的應用程序。

web service(SOAP)

Webservice的一個最基本的目的就是提供在各個不同平臺的不同應用系統的協同工作能力。

Web service 就是一個應用程序,它向外界暴露出一個能夠通過Web進行調用的API。

SOAP是一種簡單基於xml的輕量協議,用戶web上交換結構化信息和類型信息。

soap請求是HTTP POST的一個專用版本,遵循一種特殊的xml消息格式Content-type設置為: text/xml任何數據都可以xml化。

Restful

REST(Representational State Transfer)一種輕量級的Web Service架構,可以完全通過HTTP協議實現。其實現和操作比SOAP和XML-RPC更為簡潔,還可以利用緩存Cache來提高響應速度,性能、效率和易用性上都優於SOAP協議。
REST架構對資源的操作包括獲取、創建、修改和刪除資源的操作正好對應HTTP協議提供的GET、POST、PUT和DELETE方法(Verb)

SOAP與HTTP的區別

為什麽要學習web service?

大多數對外接口會實現web service方法而不是http方法,如果你不會,那就沒有辦法對接。

web service相對http (post/get)有好處嗎?

1.接口中實現的方法和要求參數一目了然

2.不用擔心大小寫問題

3.不用擔心中文urlencode問題

4.代碼中不用多次聲明認證(賬號,密碼)參數

5.傳遞參數可以為數組,對象等...

web service相對http(post/get)快嗎?

由於要進行xml解析,速度可能會有所降低。

web service 可以被http(post/get)替代嗎?

完全可以,而且現在的開放平臺都是用的HTTP(post/get)實現的。


Restful與SOAP的區別

安全性:SOAP會好於restful

效率和易用性(REST更勝一籌)

成熟度(總的來說SOAP在成熟度上優於REST)

淺談WebService SOAP、Restful、HTTP(post/get)請求