普通英语的“网络服务”是什么?


186

我在SO,维基百科,Google等网站上一直在阅读有关“ Web服务”的信息,但我不太了解它们是什么。普通的英语定义/说明是什么?

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

Answers:


286

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

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

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

完整的定义显然要复杂得多,但是您要求使用简单的英语。


2
这个解释很好,但是什么破坏了其他程序从HTML消耗随机整数的能力呢?有很多库可以读取HTML,对于我来说,这与读取XML相同,而与读取JSON几乎相同。我知道这篇文章很老,但请尽可能发表评论。
巴甫洛

7
这是意图而非能力的问题。Web服务的意图将由其他应用程序使用。html的意图是由浏览器呈现给用户。
Vincent Ramdhanie

对于任何其他感觉类似于API的人-请参见这篇很棒的文章,以了解Web服务和api之间
Sami Birnbaum

60

简化的,非技术性的解释:Web服务允许PROGRAM与网页对话,而不是使用浏览器打开网页。

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

但是,如果您正在编写一个计算机程序,想要在其中输入地址并显示漂亮的地图(如Google地图),该怎么办?

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

在其他一些帖子中,还有很多其他内容,但是最终结果是它允许您的应用程序从某些资源中检索信息,或向某些资源提交信息。其他一些例子:

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

34

是的,那是一个简单的Web服务。

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

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

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

<RANDOM>some random number</RANDOM>

而不是:

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

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


更新了我的答案以反映这一点。出现SO无法显示XML / HTML标签的问题:)
David Arno,

谢谢。完全是我的想法。XML与HTML非常相似,因此我们谈论的HTML页面由Web服务提供。
巴甫洛

21

简而言之,Web服务就是通过http协议提供数据即服务的东西。当然,情况并非总是如此……但是很接近。

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

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

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

编辑

更改了有关SOAP的措辞,因为正如我所提到的,它并不总是SOAP,而是希望使其更加清晰。关键是将数据作为服务而非UI元素提供。


1
不必一定是SOAP-如果您正在谈论Web服务(小写),那么REST就变得越来越普遍。
约翰·托普利

17

Web服务与网站的不同之处在于,Web服务提供的信息是软件而不是人类消耗的。结果,我们通常谈论的是公开的JSON,XML或SOAP服务。

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

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

希望这可以帮助!


15

最好的英文解释来自使用类推:

  • 网页使人们可以相互交流和合作。
  • Web服务允许程序相互通信和协作。

按照这个定义,您的PHP示例是一个Web服务,因为输出可能会被另一个程序使用。但是实际上,HTML屏幕抓取并不是生产Web服务的可靠或可维护的方式。


13

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

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

输入Web服务。

Web服务是网站选择提供给希望从您的网站读取,更新和/或删除数据的用户的服务。您可以将其称为数据的“后门”。它不是以预定的方式将数据显示为网页的一部分,而是以预定的方式提供的,其中更流行的是XML和JSON。与Web服务通信的方式有几种,其中一些使用SOAP,另一些具有REST'ful Web服务,等等。

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


12

Web服务是用于在应用程序或系统之间交换数据的开放协议和标准的集合。用各种编程语言编写并运行在各种平台上的软件应用程序可以使用Web服务,以类似于单个计算机上的进程间通信的方式,通过计算机网络(如Internet)交换数据。这种互操作性(例如,在Java和Python之间,或Windows和Linux应用程序之间)是由于使用开放标准(XML,SOAP,HTTP)所致。

所有标准Web服务都使用以下组件工作:

  • SOAP(简单对象访问协议)
  • UDDI(通用描述,发现和集成)
  • WSDL(Web服务描述语言)

它的工作原理如下:

  • 客户端程序将帐户注册信息捆绑到SOAP消息中。
  • 该SOAP消息作为HTTP POST请求的主体发送到Web服务。
  • Web服务将SOAP请求解压缩并将其转换为应用程序可以理解的命令。
  • 该应用程序根据需要处理信息,并以该客户的新唯一帐号响应。
  • 接下来,Web Service将响应打包为另一个SOAP消息,以响应其HTTP请求将其发送回客户端程序。
  • 客户端程序将SOAP消息解压缩以获得帐户注册过程的结果。

1
所有标准的Web服务都使用以下组件来工作: ” ...答案的问题在于,它表明Web服务在SOAP / WSDL机制内运行或必须在SOAP / WSDL机制内运行。这是不准确的。代表性状态转移(REST)是实现Web服务的另一种非常流行的范例。一些主要的网站不赞成使用SOAP服务,而推荐使用REST Web服务。
斯科特2015年

@斯科特我完全同意。感谢更新。而且,为了我的辩护,那时我对Web服务的知识非常有限!
vanguard69

7

Simple way to explain web service is ::

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

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


图片


7

Web服务是一种技术,通过该技术,两个或多个远程Web应用程序可以通过网络/互联网相互交互。可以使用Java,.net,PHP等实现。

Web服务的功能:-

  1. 使用Web服务,两个或多个系统通过网络交换数据。使用XML或JSON交换数据。
  2. 任何Web服务都有两个部分:服务器端(用于部署服务)和客户端部分(用于由客户端访问服务)。任何Web服务都可以有多个客户端。当旅行门户网站正在出售飞机票时。门户网站是客户,航空公司是服务器,因为它正在出售其服务。
  3. Web服务可以是同步的,也可以是异步的。Web应用程序可以与许多Web服务交互,但是这些Web服务与它们的客户端Web应用程序是松散耦合的。这意味着父应用程序中的任何更改对Web服务几乎没有影响,反之亦然。
  4. Web服务可以通过XML有效负载来携带附件文档(例如PDF,Word等)。Java为此类Web服务提供了单独的API。
  5. Web服务始终向客户隐藏该服务的内部复杂性。例如,通过第三方门户网站销售机票的客机仅通过网络服务收集最终用户信息,而作为回报,它提供机票。出售机票的门户不必担心航空公司机票预订系统的内部复杂性。
  6. Web服务可能会引起火灾而忘记类型,或者它可能返回某些内容。假设一个Web应用程序只想向第三方应用程序发送一些信息。发送者不需要接收者的任何确认。在这种情况下,我们需要一劳永逸的Web服务。

5

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


1
抱歉,Jezelll,必须投下反对票。这不是我认为的“普通英语” :(我对您的定义意图没有问题,但是使用“操作”,“远程服务器”,“调用”和“规范”之类的词很难供初学者理解,请参见Mitchel Sellers的回答作为“普通英语”的示例
Dhaust

5

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

同样,网站提供了您可以与之交互的HTML页面,也可能提供了以编程方式提供相同信息和操作的API。或者这些服务可能只能通过没有关联用户界面的API来使用。


4

好,

正如@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

希望这可以帮助 :)


3

一个简单的定义就是一个HTTP请求,其行为类似于普通的方法调用。也就是说,它接受参数并返回结构化的结果(通常是XML),可以将其反序列化为一个或多个对象。


3

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


3

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

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


3

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


2

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

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


1

用简单的话来说,Web服务可以是任何简单的程序,例如:添加两个应该在UDDI上发布的数字,并且可以被另一个程序使用。WSDL将具有用于定位Web服务的端点以及绑定和端口详细信息。


0

“ Web Service”由两个词“ Web”和“ Service”组成。
什么是“网络”?“ Web”的意思是“万维网”。
“服务”是为了什么?如果不是人类,则为“网页”,例如文本,图像,视频等
。程序使用与“ Web”相同的技术通过Internet与Internet通信,例如TCP,HTTP等。
“服务”也意味着它提供了一些功能,例如CRUD中的“服务层”。主要有两种类型:
1. SOAP(简单对象访问协议)
2. RESTful(表示状态传输)


0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.