2008-10-22 26 views
151

我一直在閱讀關於SO,Wikipedia,Google等的「網絡服務」,我不太明白它們是什麼。簡單的英語定義/描述是什麼?什麼是純英文的「網絡服務」?

如果我做一個簡單的網站使用PHP,只是說,打印一個隨機整數的網頁...這是一個「網絡服務」?如果不是,爲什麼不呢?

回答

244

一個簡單的定義:網絡服務是一個可以通過網絡(Http)上的其他程序訪問的功能。爲了澄清一下,當你在PHP中創建一個輸出HTML的網站時,它的目標是瀏覽器,並且通過擴展瀏覽器中的人閱讀頁面。網絡服務不針對人類,而是針對其他計劃。

因此,您的PHP網站,生成一個隨機整數可能是一個Web服務,如果它輸出的格式可能會被另一個程序使用的整數。它可能是XML格式或其他格式,只要其他程序可以理解輸出。

完整的定義顯然更復雜,但你要求純英文。

31

是的,這是一個簡單的Web服務。

Web服務實際上只不過是一種允許客戶端遠程訪問/修改數據的請求/響應機制。有關於Web服務(SOAP,SOA等)的正式標準,但簡單的頁面也是一項服務。

打印到頁面的主要缺點是您的服務將返回HTML。最好的數據格式是JSON和XML,因爲大多數客戶端框架(和服務器框架)都是使用JSON和XML設計的。

因此,如果您修改您的服務來回報:

<RANDOM>some random number</RANDOM> 

而不是:

<HEAD>...</HEAD> 
<BODY>some random number</BODY> 

那麼這將是更有益的大部分客戶

+0

已經更新了我的答案,以反映。有SO問題不顯示XML/HTML標籤:) – 2008-10-22 15:07:11

+0

校正使它更好( - :Yanking原始評論 – Murph 2008-10-25 13:08:58

+0

謝謝。正是我想到的.XML非常類似於HTML,所以我們所談論的HTML頁面由Web提供服務 – Pavlo 2017-06-27 14:15:41

2

一個簡單的定義是一個HTTP請求的行爲就像一個正常的方法調用;即它接受參數並返回一個結構化的結果,通常是可以被反序列化成一個或多個對象的XML。

19

簡而言之,Web服務是通過http協議提供數據作爲服務的東西。當然,情況並非如此......但它很接近。

標準Web服務使用SOAP協議定義消息的通信和結構,XML是數據格式。

Web服務旨在允許使用不同技術構建的應用程序彼此通信而沒有問題。

Web服務的例子就是Weather.com提供您可以在您的網站上使用的天氣信息,或UPS提供請求運輸報價或包裹跟蹤的方法。

編輯

更改措辭參考SOAP,因爲它並不總是SOAP正如我所說的,但想讓它更加清晰。關鍵是將數據作爲服務提供,而不是UI元素。

+0

它不一定是SOAP - 如果你正在談論Web服務(小寫),那麼REST越來越普遍。 – 2008-10-22 15:06:33

+0

非常真實......讓我編輯一下 – 2008-10-22 15:11:13

5

軟件開發人員使用的Web服務通常是指在遠程服務器上執行並使用XML/SOAP規範調用的操作。與所有定義一樣,它有細微之處,但這是該術語最常用的用法。

2

Web服務定義服務器將爲您執行的操作合約。格式和協議並不重要,但您應該對通信如何進行定義。

在你的例子中,它取決於,如果在另一個讀取該數字的應用程序中使用它,那麼它是服務,否則,它只是一個帶有數字的網頁。

16

Web服務與Web站點的不同之處在於,Web服務提供的信息可由軟件而不是人類消費。因此,我們通常談論的是暴露的JSON,XML或SOAP服務。

Web服務是「混搭」中的關鍵組件。混搭是指當許多網站的信息自動彙總成新的有用服務時。例如,有些網站會將Google地圖彙總爲警察報告的相關信息,以便爲您提供所在地區犯罪的圖形表示。另一種混搭方式是將另一個網站提供的真實股票數據與虛假交易應用程序相結合,以創建股票市場「遊戲」。

Web服務還用於提供新聞(請參閱RSS),添加到網站的最新項目,有關新產品的信息,播客以及使現代Web轉向的其他重要功能。

希望這會有所幫助!

49

簡化的非技術性解釋: Web服務允許程序與網頁交談,而不是使用瀏覽器打開網頁。

示例: 我可以訪問maps.google.com並輸入我的家庭住址,並查看我住在瀏覽器中的地圖。

但是,如果你正在編寫一個計算機程序,你想採取一個地址,並顯示一個漂亮的地圖,就像谷歌地圖?

那麼,你可以從頭開始編寫一個全新的映射程序,或者你可以調用Google地圖提供的Web服務,發送它的地址,它會返回一個位置的圖形地圖,你可以顯示你的程序。

還有很多其他的事情,因爲其他一些帖子會涉及到,但結果是它允許您的應用程序檢索信息FROM或向某些資源提交信息。其他一些例子:

  1. 您可以使用Web服務在Amazon.com檢索圖書信息
  2. 您可以使用類似的網絡服務訂單提交給Amazon.com
  3. 你可以創建一個web服務以允許外部應用程序查找您公司內的產品信息
  4. 您可以創建一個Web服務以允許外部應用程序向您的公司提交訂單。
3

Web服務幾乎和普通的網頁一樣。不同之處在於它們的格式使得程序很容易從頁面獲取數據,甚至可能不使用任何HTML。它們通常對於格式的一致性也更可靠,可以使用不同的形式化過程來定義諸如soap或raw xml等內容,並且通常還有描述符文檔,其正式定義了數據的結構。

5

操作系統提供了一個可與之交互的GUI(和CLI)。它還提供了一個可以以編程方式進行交互的API。

同樣,一個網站提供了可以與之交互的HTML頁面,並且還可以提供一個API,以編程方式提供相同的信息和操作。或者這些服務可能只能通過沒有關聯用戶界面的API使用。

13

對於大多數網站,您使用瀏覽器時訪問過HTML頁面。這些是人類可讀的頁面(一次在瀏覽器中呈現),大量數據可能被擠在一起,因爲它對人類有意義。

現在想象別人想要使用某些數據。他們可以下載你的頁面並開始篩選出所有的「噪音」以獲得他們想要的數據,但是大多數網站的構建方式並不是將數據100%確定地放置在所有元素的相同位置,因此除此之外繁瑣也變得不可靠。

輸入網絡服務。

Web服務是網站選擇向想要從您的網站讀取,更新和/或刪除數據的用戶提供的服務。您可能會將其稱爲數據的「後門」。不是將數據作爲網頁的一部分呈現,而是以預先確定的方式提供,其中一些更受歡迎的是XML和JSON。有幾種方式與web服務進行通信,一些使用SOAP,一些使用SOAP,另一些使用RESTful Web服務等。

所有web服務的常見情況是它們是網頁的機器可讀equivelant,提供。這意味着希望使用數據的其他人可以發送請求以獲取某些易於解析和使用的數據。有些網站可能會要求您在請求中提供用戶名/密碼以提供敏感數據,而其他網站則允許任何人提取他們可能需要的任何數據。

10

最好的純英文解釋來自使用一個比喻:

  • 網頁讓人們溝通和相互協作。
  • Web服務允許程序彼此進行通信和協作。

您的PHP示例是該定義的Web服務,因爲該輸出可能會被另一個程序使用。但實際上,HTML屏幕抓取不是一種可靠或可維護的Web服務生成方式。

3

一種發送消息以調用另一臺計算機上的操作的方式。 Web服務和以前的方法之間的區別是通過電纜發送的是在更高層次上標準化的。

舊的方式:描述endians,編碼,端口號等 Web服務:URL,XML

6

Simple way to explain web service is ::

  • Web服務是在萬維網兩個電子設備之間進行通信的方法。
  • 它可以被稱爲是一個程序員使用與服務器
  • 溝通要調用此過程程序員可以使用SOAP等
  • Web服務是建立在開放的標準,如TCP頂部的過程/ IP,HTTP

web服務的優點是,說你devel的在.net中運行一段代碼,並且希望使用JAVA來使用此代碼。您可以直接與抽象圖層進行交互,但不知道使用哪種技術開發代碼。


Image

9

web服務是用於交換應用程序或系統之間的數據開放協議和標準的集合。以各種編程語言編寫並在各種平臺上運行的軟件應用程序可以使用Web服務以類似於單臺計算機上的進程間通信的方式通過計算機網絡(如Internet)交換數據。這種互操作性(例如,在Java和Python之間,或Windows和Linux應用程序之間)是由於使用了開放標準(XML,SOAP,HTTP)。

所有標準的Web服務工程,並使用以下組件:

  • SOAP(簡單對象訪問協議)
  • UDDI(統一描述,發現和集成)
  • WSDL(Web服務描述語言)

它的工作原理有點像這樣:

  • 客戶端程序將帳戶註冊信息捆綁到SOAP消息中。
  • 該SOAP消息作爲HTTP POST請求的主體發送到Web Service。
  • Web Service解包SOAP請求並將其轉換爲應用程序可以理解的命令。
  • 應用程序根據需要處理信息並以該客戶的新唯一帳號進行響應。
  • 接下來,Web Service將響應打包到另一個SOAP消息中,並將其發送回客戶端程序以響應其HTTP請求。
  • 客戶端程序解壓縮SOAP消息以獲取帳戶註冊過程的結果。
3

Web Service就像兩個不相關程序之間的通信媒介。這些程序使用指定的協議(通常爲簡單對象訪問協議(SOAP))作爲媒介來理解它們在那裏處理/執行哪個REQUEST/RESPONCE。

6

Webservice是一種技術,通過它兩個或多個遠程Web應用程序通過網絡/互聯網相互交互。它可以使用Java,.NET,PHP等

Web服務的特點來實現: -

  1. 通過網絡使用Web服務的兩個或多個系統交換數據。數據使用XML或JSON進行交換。
  2. 任何Web服務都有服務部署的兩部分服務器端和客戶端訪問服務的客戶端部分。任何Web服務都可以有多個客戶端。當一個旅行門戶正在銷售一架客機的機票時。 Portal是客戶,Airline是服務器,因爲它銷售其服務。
  3. Web服務可以是同步的,也可以是異步的。Web應用程序可以與很多web services進行交互,但這些Web服務與其客戶端Web應用程序鬆散耦合。這意味着父應用程序的任何更改對Web服務幾乎沒有影響,反之亦然。
  4. Web服務可以通過其XML有效載荷攜帶附件文檔,如PDF,Word等。 Java爲這種類型的Web服務提供了單獨的API。
  5. Web服務總是隱藏服務的內部複雜性給其客戶。例如,一家通過第三方門戶銷售門票的客機僅通過網絡服務收集最終用戶信息,並作爲回報提供門票。售票門戶無需擔心航空公司機票預訂系統的內部複雜性。
  6. Web服務可以是火和遺忘類型,或者它可以返回一些東西。假設一個Web應用程序只想發送一些信息給第三方應用程序。發送方不需要接收方的任何確認。在這種情況下,我們需要一種消除和遺忘類型的Web服務。
3

好,

由於@Vincent Ramdhanie曾表示,Web服務並不意味着被視爲/由最終用戶,但另一個程序消耗。因此,在你的程序在技術上的邏輯是:

在作爲一個正常的程序現在

user on website -> HTML/JS/JQuery etc -> give me a random number ->ur program 

ur program -> generate random number -> generate HTML and encapsulate o/p -> go back to user

,但在Web服務的情況下,流量變化不大的情況下:

user -> my application -> XML/JSON/some other format -> give me a random number ->ur program 現在

ur program -> generate random number -> generate XML/JSON/some other format -> my application -> generate HTML and encapsulate o/p -> go back to user

希望這有助於:)

2

簡單地說Web服務可以是任何簡單的程序,例如:加應公佈在UDDI,可以通過另一program.WSDL消耗將有兩個號碼定位web服務的端點以及綁定和端口詳細信息。

0

'網絡服務'由兩個詞'Web'和'Service'組成。
'Web'是什麼? '網絡'是指'萬維網'。
'服務'爲了什麼?不適用於人類,如果是這樣,它是'網頁',如文本,圖像,視頻等。
它適用於程序通過互聯網使用與'Web'相同的技術進行通信,例如TCP,HTTP等。
'服務'也意味着它提供了一些功能,如CRUD中的'服務層'。 主要有兩種類型:
1. SOAP(簡單對象訪問協議)
2.基於REST(表述性狀態轉移)