web service 就是一種網絡服務, 它通過 HTTP(大多數情況) 使用 SOAP message 對數據進行請求和反應。
舉例: 比如我們建立了一個簡單計算器的web service, 那麼別人可以通過使用 SOAP message進行對數據的請求, 當我們的計算器web service接收到用戶的請求的時候, 我們會先在終端對用戶的請求進行處理,之後同樣的返回一個SOAP message到用戶。
在完全弄清楚web service之前, 需要了解幾個定義。
1. 什麼是SOAP?
2. 什麼是Soap message?
3. 如何生成Soap message?
1. 答: SOAP :Simple Object Access Protocol. 它是一種傳輸協議, 用來定義在 應用和應用之間傳輸信息的協議, 簡單來講就是一種標準,生成和返回的soap message 應該是一種什麼形式。 SOAP 通過 大多數情況下通過http進行傳輸。
2. 答: SOAP message 就是一個soap 的請求或者回應。它基於XML。 簡單來講它就是按照soap的語法使用XML進行編寫的代碼。
3. 答:我們現在明白了,要想使用我們的計算器web service。我們首先使用xml按照soap的標準來寫代碼,寫的代碼是用來向我們的計算器web service進行請求計算的。那我們該如何定位我們的web service呢?對於輸入參數的要求又是什麼呢? 返回參數的意義又是什麼呢? 對於這一系列的問題,我們可以使用WSDL來進行回答。
WSDL : Web Service Description Language. 簡單來講,就是一種基於XML的文檔,通過這種文檔,我們能夠知道如果定位web service,知道各個參數、方法各是什麼。
另外摘取別人的一個例子流程幫助大家理解。
客戶端——> 閱讀WSDL文檔 (根據文檔生成SOAP請求) ——>發送到Web服務器——>交給WebService請求處理器 (ISAPI Extension)
——>處理SOAP請求——> 調用WebService——>生成SOAP應答 ——> Web服務器通過http的方式交給客戶端
//***我是分割線*****
以上使用介紹的web service是soap web service, 那麼還有其他的什麼的web service嗎? 答案是有的。
另外一種類型是 RESTful web service ( Representational State Transfer). 它的用處是和soap web service是一樣的,都是處理用戶的請求然後返回給用戶結果。
區別?
SOAP Web Service | RESTful Web Service |
SOAP是一種協議 | REST是一種結構 |
全稱是Simple Object Access Protocol | 全稱是Representationnal State Transfer |
不能使用REST,因爲它自己是一種協議 | 可以使用SOAP |
使用接口去使用web service提供的服務 | 使用URI去使用service提供的服務 |
SOAP必須嚴格按照一定的標準 | 沒有太多標準的限制 |
對比REST需要更多的帶寬等 | 更少的帶寬 |
有自己的安全機制 | 繼承來自它使用的協議的安全機制 |
僅僅能使用XML格式 | 格式不限 - JSON, XML, HTML, etc |
優先使用! |
如有錯誤歡迎指出!
reference: http://www.cnblogs.com/codelir/p/5476517.html