Web服务和Web应用程序之间的区别
Posted
技术标签:
【中文标题】Web服务和Web应用程序之间的区别【英文标题】:Difference between web services and web application 【发布时间】:2012-05-23 19:33:21 【问题描述】:让我们有一个示例场景:
客户端打开一个网站并找到他从文本框中输入的两个数字的总和。然后单击“添加”按钮。两个参数被 HTTP GET'ed 到编写 php 代码以添加数字的服务器,结果是回声。
基于这个场景,任何人都可以解释 Web 服务和应用程序之间的区别吗?
【问题讨论】:
【参考方案1】:在你的情况下,如果你有提供两个数字然后得到结果的用户界面,它应该被称为 web 应用程序。但是如果你有一个 API 暴露来接收两个数字并通过 http 返回结果,那么它应该被称为 Web 服务。 在底层,Web 应用程序和 Web 服务是一回事。但主要的一点是,Web 服务用于机器/程序到机器/程序的通信,而 Web 应用程序用于用户。
【讨论】:
那么,基本上网络应用程序有用户界面,而网络服务没有,对吧? @NerotheZero,没那么简单,有像 Windows 服务这样没有 UI 的应用程序。主要的一点是,Web 服务是用于机器到机器或应用程序到应用程序的通信。【参考方案2】:我想说的是,Web 应用程序是为用户设计的,而 Web 服务是为其他应用程序设计的。这是最重要的区别。 Web 应用程序通常以 html 格式呈现数据,这对用户来说看起来不错,而 Web 服务通常以 XML 格式呈现数据,以便其他应用程序解析。
【讨论】:
【参考方案3】:一个人开车。那辆车可以由内燃机、电动机或核反应堆提供动力。不过,电源对驾驶员来说并不重要,因为他们只需要看到控制装置和前方的道路。
应用程序是汽车。 Web 服务就是核反应堆。
【讨论】:
我会被诅咒的......那真是太糟糕的例子......就像引擎和风扇加热器以及所有单独的组件都是 Web 服务,而汽车是 Web 应用程序,对吗?跨度> 【参考方案4】:要添加 2 个数字,我们编写一个 Web 服务,要减去,我们编写一个不同的 Web 服务,但是计算器是一个 Web 应用程序,它结合使用了加法、减法和许多其他 Web 服务。
【讨论】:
【参考方案5】:让我们以 Google 搜索为例。 我们可以通过两种方式使用 Google 搜索。首先,我们可以访问http://www.google.com并提出查询进行搜索。谷歌返回结果。其次,我们可以将 Google 搜索与自定义搜索 API 集成到我们的网站中。
在第一个例子中,Google 搜索充当网络应用程序,而在第二个例子中,它充当网络服务。
在这里我们可以指出一些不同之处,
-
用户与 Web 应用程序交互,而机器与 Web 服务交互。
要访问 Web 应用程序,必须访问应用程序。虽然可以从任何地方(从任何集成它的应用程序)访问 Web 服务。我们不需要显式访问该服务。
【讨论】:
【参考方案6】:webservice 相当于 java 中的一个方法,它有一个 web 包装器。它存在于服务器上,可以发送数据/查询等,并且可能会或可能不会返回结果。它没有任何前端,只能通过http get、put、delete等方式访问。
Web 应用程序是一个功能齐全的软件,它存在于旨在帮助人们完成任务的服务器上。这将有一个前端,允许用户与之交互/输入数据等。
一个网络应用程序可以使用多个网络服务来实现其目标/最终结果
【讨论】:
【参考方案7】:Web 应用程序和 Web 服务之间几乎没有区别。 Web 应用程序:在 Web 应用程序中,当用户请求任何数据时,服务器会将响应嵌入到一些 HTML 中并将其转发给用户,然后在浏览器上呈现 HTML。 而在 Web 服务中,它的做法有所不同,当某些用户请求某些数据时,服务器会返回一个 json 或 XML 对象数组,并且数据可以按 Web 设计人员想要的任何方式显示。 谢谢 希望它能解决问题。
【讨论】:
【参考方案8】:Web服务用于应用程序消费,通过Web应用程序调用 要与 web 服务通信,数据应作为 SOAP 消息或 REST 发送,即 XML over HTTP
大多数情况下,Web 服务不是应用程序的一部分,因为它是为了方便其他 Web 应用程序使用,而不是供最终用户直接使用
Web 应用程序是由 GUI 直接调用的供人类消费的,它可能使用也可能不使用 Web 服务来提供响应
【讨论】:
以上是关于Web服务和Web应用程序之间的区别的主要内容,如果未能解决你的问题,请参考以下文章
Rest API 和 Restful Web 服务之间的区别
web容器 web服务器 servlet/jsp容器 之间的区别和关系是什么?
JBoss Web Server和JBoss EAP之间用于运行Redhat Decision Manager的区别是什么?