什么是简单英语的“网络服务”?

时间:2008-10-22 14:56:41

标签: web-services

我在SO,维基百科,谷歌等网站上一直在阅读“网络服务”,我不太明白它们是什么。什么是简单的英文定义/描述?

如果我使用PHP创建一个简单的网站,比如打印一个随机整数到页面......这是一个“网络服务”吗?如果没有,为什么不呢?

20 个答案:

答案 0 :(得分:277)

简单定义:Web服务是可以通过Web(HTTP)访问其他程序的功能。

例如,当您在PHP中创建一个输出HTML的网站时,其目标是浏览器,并且扩展名是人在浏览器中读取页面。 Web服务不是针对人类,而是针对其他程序。

因此,生成随机整数的PHP站点如果以可能被其他程序使用的格式输出整数,则可能是Web服务。它可能是XML格式或其他格式,只要其他程序可以理解输出。

完整的定义显然更复杂,但你要求简单的英语。

答案 1 :(得分:58)

简化的非技术性说明: 网络服务允许PROGRAM与网页通话,而不是使用浏览器打开网页。

实施例: 我可以访问maps.google.com,输入我的家庭住址,然后查看我在浏览器中的居住地图。

但是,如果你正在编写一个计算机程序,想要获取地址并显示漂亮的地图,就像Google地图一样?

嗯,您可以从头开始编写一个全新的地图程序,或者您可以调用Google地图提供的网络服务,将地址发送给它,然后它会返回该位置的图形地图,您可以在其中显示程序

还有更多内容,正如其他一些帖子所涉及的那样,但结果是它允许您的应用程序检索信息FROM或向某些资源提交信息。其他一些例子:

  1. 您可以使用网络服务在Amazon.com上检索有关图书的信息
  2. 您可以使用类似的网络服务向Amazon.com提交订单
  3. 您可以创建一个Web服务,以允许外部应用程序查找您公司内的产品信息
  4. 您可以创建一个Web服务,以允许外部应用程序向您的公司提交订单。

答案 2 :(得分:34)

是的,这是一个简单的网络服务。

Web服务实际上只是一种允许客户端远程访问/修改数据的请求/响应机制。有Web服务的正式标准(SOAP,SOA等),但您的简单页面也是一种服务。

将其打印到页面的主要缺点是您的服务将返回HTML。优选的数据格式是JSON和XML,因为大多数客户端框架(和服务器框架)都是围绕使用JSON和XML而设计的。

因此,如果您修改了服务以返回:

<RANDOM>some random number</RANDOM>

而不是:

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

那么它对大多数客户来说会更有用

答案 3 :(得分:21)

在简单的术语中,Web服务是通过http协议提供数据即服务的东西。虽然情况并非如此......但它很接近。

标准Web服务使用SOAP协议定义消息的通信和结构,XML是数据格式。

Web服务旨在允许使用不同技术构建的应用程序相互通信而不会出现问题。

Web服务的示例包括Weather.com提供您可以在您的网站上使用的天气信息,或UPS提供请求运送报价或跟踪包裹的方法。

修改

改变了关于SOAP的措辞,因为它并不总是我提到的SOAP,但是想让它更清楚。关键是将数据作为服务提供,而不是UI元素。

答案 4 :(得分:17)

Web服务与Web站点的不同之处在于Web服务提供的信息可由软件而非人类使用。因此,我们通常会讨论公开的JSON,XML或SOAP服务。

Web服务是“mashup”中的关键组件。混搭是指来自许多网站的信息自动汇总到新的有用服务中。例如,有些网站会将Google地图与警方报告的信息进行汇总,以便为您提供所在地区犯罪的图形表示。另一种混搭方式是获取另一个网站提供的真实股票数据,并将其与假交易应用程序相结合,以创建股票市场“游戏”。

Web服务还用于提供新闻(请参阅RSS),添加到网站的最新项目,新产品信息,播客以及其他使现代网络转变的强大功能。

希望这有帮助!

答案 5 :(得分:12)

对于大多数网站,您使用浏览器时都会访问HTML页面。这些是人类可读的页面(一旦在您的浏览器中呈现),其中许多数据可能被挤在一起,因为它对人类有意义。

现在想象别人想要使用一些数据。他们可以下载您的页面并开始过滤掉所有“噪音”以获得他们想要的数据,但大多数网站的构建方式并不是数据100%确定放在所有元素的同一位置,所以另外如果麻烦,它也变得不可靠。

输入网络服务。

网站服务是网站选择向希望阅读,更新和/或删除网站数据的用户提供的服务。您可以将其称为数据的“后门”。它不是将数据作为网页的一部分呈现,而是以预先确定的方式提供,其中一些更受欢迎的是XML和JSON。有几种方法可以与Web服务进行通信,一些使用SOAP,另一些使用REST'ful Web服务等。

所有Web服务的共同点是,它们是网站提供的网页的机器可读等效项。这意味着希望使用数据的其他人可以发送请求以获取易于解析和使用的特定数据。有些网站可能会要求您在请求中提供用户名/密码以获取敏感数据,而其他网站则允许任何人提取他们可能需要的任何数据。

答案 6 :(得分:12)

最好的简单英语解释来自于使用类比:

  • 网页允许人们相互沟通和协作。
  • Web服务允许程序相互通信和协作。

您的PHP示例是该定义的Web服务,因为输出可能被其他程序使用。但实际上,HTML屏幕抓取并不是生成Web服务的可靠或可维护的方式。

答案 7 :(得分:11)

Web服务是用于在应用程序或系统之间交换数据的开放协议和标准的集合。以各种编程语言编写并在各种平台上运行的软件应用程序可以使用Web服务以类似于在单个计算机上的进程间通信的方式通过诸如因特网的计算机网络交换数据。这种互操作性(例如,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消息以获取帐户注册过程的结果。

答案 8 :(得分:6)

<强> Simple way to explain web service is ::

  • 网络服务是通过万维网在两个电子设备之间进行通信的方法。
  • 它可以被称为程序员用来与服务器通信的进程
  • 要调用此流程,程序员可以使用SOAP等
  • Web服务建立在开放标准之上,例如TCP / IP,HTTP

  

Web服务的优点是,假设您在.net中开发了一段代码,并且希望使用JAVA来使用此代码。您可以   直接与抽象层交互并且不知道什么   技术被用来开发代码。


Image

答案 9 :(得分:5)

软件开发人员使用的Web服务通常是指在远程服务器上执行并使用XML / SOAP规范调用的操作。与所有定义一样,它有细微差别,但这是该术语最常见的用法。

答案 10 :(得分:5)

操作系统提供可与之交互的GUI(和CLI)。它还提供了一个可以通过编程方式进行交互的API。

类似地,网站提供可与之交互的HTML页面,并且还可提供以编程方式提供相同信息和操作的API。或者这些服务可能只能通过没有相关用户界面的API获得。

答案 11 :(得分:3)

一个简单的定义是一个HTTP请求,就像普通的方法调用一样;即,它接受参数并返回结构化结果,通常是XML,可以反序列化为对象。

答案 12 :(得分:3)

那么,

正如@Vincent Ramdhanie所说,最终用户不应该看到/消费网络服务,而是另一个程序。因此,程序中的技术逻辑将是:

如果是正常程序

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

希望这会有所帮助:)

答案 13 :(得分:3)

Web Service就像是两个不相关程序之间的通信媒介。程序使用指定的协议(通常为简单对象访问协议(SOAP))作为介质,以了解它们在各自的端部处理/执行的请求/响应。

答案 14 :(得分:3)

一种发送消息以在另一台计算机上调用操作的方法。 Web服务和以前的方法之间的区别在于通过网络发送的内容在更高级别标准化。

旧方法:描述字节序,编码,端口号等。 Web服务:URL,XML

答案 15 :(得分:3)

Web服务几乎就像普通网页一样。不同之处在于它们的格式化使程序很容易从页面中提取数据,甚至可能不使用任何HTML。对于格式的一致性,它们通常也更可靠,可以使用不同的正式过程来定义内容,如soap或raw xml,并且通常还有一个描述符文档,正式定义数据的结构。

答案 16 :(得分:2)

Web服务定义服务器将为您执行的操作的合同。格式和协议并不重要,但您应该对通信的发生方式有一些定义。

在您的示例中,它取决于,如果在另一个读取该数字的应用程序中使用它,是的是服务,否则,它只是一个带有数字的网页。

答案 17 :(得分:1)

简单来说,Web服务可以是任何简单的程序ex:添加两个应该通过UDDI发布的数字,并且可以由另一个程序使用.WSDL将使端点能够找到Web服务以及绑定和端口详细信息。

答案 18 :(得分:0)

在不影响其他定义的前提下,我想说Web服务是一种软件系统,它允许通过网络进行互操作的机器到机器/应用程序到应用程序交互。这种通用定义还可以帮助您将REST体系结构视为Web服务,因为它们提供了类似的功能,尽管它是与完全定义的协议SOAP不同的体系结构样式。

答案 19 :(得分:-1)

&#39;网络服务&#39;由两个词组成,&#39; Web&#39;和&#39;服务&#39; 什么是网络&#39;? &#39;网络&#39;意味着万维网&#39; &#39;服务&#39;为了什么?不是为了人类,如果是这样的话,那就是网页,例如文字,图片,视频等。
程序通过互联网使用相同的技术进行通信,即“网络”。使用,如TCP,HTTP等 &#39;服务&#39;也意味着它提供了一些功能,例如服务层&#39;在CRUD。 主要有两种类型:
1. SOAP(简单对象访问协议)
2. RESTful(具象状态转移)