2014-02-22 155 views
5

我用Google搜索關於「Web服務」之間的不同,我在wiki還閱讀:什麼是HTTP請求和web服務

Web服務是通信的在兩個電子 設備之間的方法萬維網

但是我不能說清楚什麼是web服務的含義。

如何返回xml或json而不是html內容的常見http請求?例如:

http://www.server.com/ws/getitem?id=xxxx

這是用來獲取由ID項細節的接口,而JSON或XML格式返回數據。

現在,如果我們通過所謂的web服務方式來實現它,將會做什麼?

回答

4

正常網頁返回旨在在瀏覽器中向用戶顯示的HTML,PDF或圖像數據。

Web服務返回的數據打算供其他程序使用,而不是直接顯示給用戶;另一個通用術語是API,即應用程序編程接口。它不會返回HTML,而是返回結構易於計算機提取值的數據。常用格式爲XMLJSON。 Web服務也可能使用請求的結構化格式,如SOAPWSDL,但有些(如您的示例)僅使用URL查詢參數。

Web服務和普通網頁都使用HTTP作爲數據傳輸協議。區別在於它們如何被客戶使用。

+0

此外,通常web服務使用某種標準格式來提出請求/響應,例如[wsdl](http://www.w3.org/TR/wsdl) –

+0

我知道web服務用於通信,但在我的示例中,正常的Web請求返回json(或xml)數據而不是html,然後是客戶端(可能是瀏覽器,移動設備等),所以這是一種Web服務。我懷疑它:( – hguser

+0

)如果它返回JSON或XML,它是一個web服務,而不是一個網頁 – Barmar

0

我想如果你的鏈接回退一個完整的HTML頁面,完整的引用圖像,閃光燈,聲音,拉鍊,但你的客戶端不是一個瀏覽器,只是忽略所有這些內容,只解析這個HTML,它是刮和一些網絡服務:-)雖然不是非常有效的一個:-)

但是,如果你從瀏覽器做出相同的請求,你沒有解析任何東西或做任何有用的編程方式,然後我認爲這不是一個Web服務。

如果您正在執行ajax請求以檢索一段XML以附加到您的瀏覽器DOM,那麼您不會解析要處理的數據,而只是想刷新一個網頁,所以我認爲這不是一個Web服務。

如果你正在做另一個Ajax請求來檢索一個JavaScript客戶端代碼在瀏覽器中解釋的JSON對象以顯示一些警告,那麼你不會解析要處理的數據,所以我認爲它是不是網絡服務。

如果您正在發出http請求來檢索您將使用itext解析的PDF以執行一些數據緊縮,那麼您可能正在使用Web服務。

如果您正在發出http請求來檢索純文本CSV文件以自動輸入到某個數據庫,我認爲它也是一項Web服務。

所以我真的認爲Web服務和不是Web服務的區別在於交互的另一端是機器還是人。

這就是爲什麼「典型」的Web服務都是爲了使機器人工作更容易:-)

更新:如果它是一個人穿西裝售價較高的性價比,它肯定是一個Web服務;-)

ps:如果我用ftp而不是http來提供相同的內容,甚至在瀏覽器中使用ftp,它仍然是一個web服務或ftp不夠web嗎? :-)