什么是简单英语中的“ Web 服务”?

我一直在 SO、 Wikipedia、 Google 等网站上阅读有关“网络服务”的内容,但我不太明白它们是什么。简单的英文定义/描述是什么?

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

138658 次浏览

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

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

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

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

<RANDOM>some random number</RANDOM>

而不是:

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

那对大多数客户来说就更有用了

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

用过于简化的术语来说,Web 服务是通过 http 协议提供数据作为服务的东西。虽然情况并非总是如此,但也差不多了。

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

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

Web 服务的例子包括 Weather.com 提供的天气信息,您可以在自己的站点上使用,或者 UPS 提供的方法可以请求发货报价或跟踪包裹。

剪辑

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

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

Web 服务定义了服务器将为您执行的操作的契约。格式和协议实际上并不重要,但是您应该有一些关于通信如何发生的集合定义。

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

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

Web 服务是“ mashup”中的关键组件。Mashup 是将来自许多网站的信息自动聚合成一个新的、有用的服务。例如,有些网站可以将谷歌地图与警方报告的信息聚合起来,以图形化的方式展示你所在地区的犯罪情况。另一种类型的 mashup 是将另一个站点提供的真实股票数据与虚假交易应用程序结合起来,创建一个股市“游戏”。

Web 服务还用于提供新闻(参见 RSS)、添加到站点的最新条目、关于新产品的信息、播客以及其他使现代网络转向的重要特性。

希望这个能帮上忙!

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

例如: 我可以登录 maps.google.com,输入我的家庭住址,然后在浏览器中看到我住的地方的地图。

但是,如果您正在编写一个计算机程序,其中您希望获取一个地址并显示一个漂亮的地图,就像谷歌地图一样?

你可以从头开始编写一个全新的地图程序,或者你可以调用谷歌地图提供的网络服务,把地址发给它,它会返回一个位置的图形地图,你可以在你的程序中显示。

随着其他一些文章的介绍,它还有很多内容,但结果是它允许应用程序检索 FROM 信息,或者将信息提交给某个资源。其他一些例子:

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

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

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

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

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

Web 服务几乎和正常的 Web 页面一样。不同之处在于,它们的格式使程序很容易从页面中提取数据,甚至可能不使用任何 HTML。他们一般也更可靠的格式的一致性,可能使用不同的正式过程来定义内容,如肥皂或原始的 xml,并且往往还有一个描述符文档,正式定义的数据结构。

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

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

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

现在假设有人想要使用这些数据。他们可以下载你的页面,并开始过滤掉所有的“噪音”,以获得他们想要的数据,但是大多数网站的建立方式不是100% 确定所有元素的数据都放在同一个地方,所以除了麻烦之外,它也变得不可靠。

输入 Web 服务。

Web 服务是网站选择提供给那些希望阅读、更新和/或删除网站数据的用户的服务。你可以称之为数据的“后门”。数据不是作为网页的一部分呈现,而是以预先确定的方式提供,其中一些比较流行的是 XML 和 JSON。有几种方法可以与 Web 服务进行通信,有些使用 SOAP,有些使用 REST 的 Web 服务,等等。

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

最简单的英语解释来自于一个类比:

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

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

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

旧方法: 描述 endian、编码、端口号等。 Web 服务: URL、 XML

Simple way to explain web service is ::

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

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


Image

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

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

  • 简单对象访问协议
  • 通用描述、发现和集成
  • Web 服务描述语言

它的工作原理大致是这样的:

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

Web 服务就像是两个不相关程序之间的通信媒介。程序使用一个指定的协议(通常是 简单对象访问协议(SOAP))作为媒介来理解它们是什么 REQUEST/RESPONCE 来处理/执行各自的端。

Webservice 是两个或多个远程 Web 应用程序通过网络/因特网相互交互的一种技术。它可以使用 Java 实现,。网络、 PHP 等。

Web 服务的特性:-

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

好吧,

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

希望这对你有帮助:)

简而言之,Web 服务可以是任何一个简单的程序: 添加两个数字,这两个数字应该通过 UDDI 发布,并且可以被另一个程序使用。 WSDL 将拥有定位 Web 服务的端点,以及绑定和端口细节。

“网络服务”由“网络”和“服务”两个词组成。
什么是“网络”? “网络”意味着“万维网”。
“服务”是为了什么? 不是为了人类,如果是,那就是“网页”,比如文本、图像、视频等。
程序通过互联网使用与“ Web”相同的技术进行通信,例如 TCP、 HTTP 等。
“服务”还意味着它提供一些功能,比如 CRUD 中的“服务层”。 主要有两类:
1. SOAP (简单对象访问协议)
2. 休息(REST)

在不影响其他定义的情况下,我认为 Web 服务是一种软件系统,它允许通过网络进行机器对机器/应用程序对应用程序的互操作。这个通用定义还有助于将 REST 体系结构视为 Web 服务,因为它们提供了类似的功能,尽管它们是一种体系结构风格,而不像 SOAP 是一个完全定义的协议。