Web Service(SOAP)和HTTP接口的區別

轉載地址:http://blog.csdn.net/tobetheender/article/details/52703726


什麼是web service?


soap請求 (Simple Object Access Protocol,簡單對象訪問協議) 是HTTP POST的一個專用版本,遵循一種特殊的xml消息格式Content-type設置爲: text/xml任何數據都可以xml化。

 

SOAP:簡單對象訪問協議,簡單對象訪問協議(SOAP)是一種輕量的、簡單的、基於 XML 的協議,它被設計成在 WEB 上交換結構化的和固化的信息。 SOAP 可以和現存的許多因特網協議和格式結合使用,包括超文本傳輸協議( HTTP),簡單郵件傳輸協議(SMTP),多用途網際郵件擴充協議(MIME)。它還支持從消息系統到遠程過程調用(RPC)等大量的應用程序。


SOAP是一個基於XML的協議交換消息,可以使用HTTP來傳輸這些信息。事實上HTTP是SOAP消息的最常見的傳輸工具。soap將信息進行XML的序列化後,再用http協議的方式再打包進行傳送,傳送的方式還是tcp或者udp。做個比喻就好理解了。tcp 和 udp 都是公路,暫且把tcp認爲是一般公路,udp高速公路,soap和http就都是汽車,那麼soap和http都可以在tcp和udp上跑。說soap可以通過http來傳送,實際就是說soap是小轎車,http是裝轎車的卡車,把soap的信息裝到http裏面,然後再運輸,當然走的道路還是tcp或udp。說soap可以通過http協議來傳輸,這句話不太準確,比較準確第說法是:soap信息可以通過http協議包裝後通過tcp或udp傳輸。

 

SOAP 包括四個部分:

   SOAP

它定義了一個框架 , 該框架描述了消息中的內容是什麼,誰應當處理它以及它是可選的還是必須的。

  SOAP 編碼規則:它定義了一種序列化的機制,用於交換應用程序所定義的數據類型的實例。

  SOAP RPC 表示:它定義了用於表示遠程過程調用和應答的協定。

  SOAP 綁定:定義了一種使用底層傳輸協議來完成在節點間交換SOAP封裝的約定。

  SOAP 消息基本上是從發送端到接收端的單向傳輸,但它們常常結合起來執行類似於請求 / 應答的模式。所有的 SOAP 消息都使用 XML 編碼。一條 SOAP 消息就是一個包含有一個必需的 SOAP 的封裝包,一個可選的 SOAP 標頭和一個必需的 SOAP 體塊的 XML 文檔。

  把 SOAP 綁定到 HTTP 提供了同時利用 SOAP 的樣式和分散的靈活性的特點以及 HTTP 的豐富的特徵庫的優點。在HTTP上傳送 SOAP 並不是說 SOAP 會覆蓋現有的 HTTP 語義,而是 HTTP 上的 SOAP 語義會自然的映射到 HTTP 語義。在使用 HTTP 作爲協議綁定的場合中, RPC 請求映射到 HTTP 請求上,而 RPC 應答映射到 HTTP 應答。然而,在 RPC 上使用 SOAP 並不僅限於 HTTP 協議綁定。

  SOAP也可以綁定到TCP和UDP協議上。





爲什麼要學習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)實現的。


有的說法

httpservice通過post和get得到你想要的東西
webservice就是使用soap協議得到你想要的東西,相比httpservice能處理些更加複雜的數據類型

當你要調用一個你本服務的內容的時候,不涉及到跨域的問題,你可以使用HttpService的方式。
如果,你需要在後臺調用一個其它應用的服務,這個時候,你必須要用webService的方式來調用。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章