我一直在SO,维基百科,谷歌等上阅读"网络服务",我不太明白它们是什么.什么是简单的英文定义/描述?
如果我使用PHP制作一个简单的网站,比如说,打印一个随机整数到页面......这是一个"网络服务"吗?如果没有,为什么不呢?
一个简单的定义:Web服务是一个可以通过Web(Http)由其他程序访问的功能.为了澄清一点,当您在PHP中创建一个输出HTML的网站时,其目标是浏览器,并且通过扩展,人们在浏览器中阅读该页面.Web服务不是针对人类,而是针对其他程序.
因此,生成随机整数的PHP站点如果以其他程序可能使用的格式输出整数,则可以是Web服务.它可能是XML格式或其他格式,只要其他程序可以理解输出.
完整的定义显然更复杂,但你要求简单的英语.
简化的非技术性说明:网络服务允许PROGRAM与网页通信,而不是使用浏览器打开网页.
示例:我可以访问maps.google.com,输入我的家庭住址,然后查看我在浏览器中的位置地图.
但是,如果你正在编写一个计算机程序,想要获取地址并显示漂亮的地图,就像Google地图一样?
好吧,您可以从头开始编写一个全新的映射程序,或者您可以调用Google地图提供的Web服务,向其发送地址,然后它将返回该位置的图形地图,您可以在程序中显示该地图.
还有更多内容,正如其他一些帖子所涉及的那样,但结果是它允许您的应用程序检索信息FROM或向某些资源提交信息.其他一些例子:
您可以使用Web服务在Amazon.com上检索有关书籍的信息
您可以使用类似的Web服务向Amazon.com提交订单
您可以创建Web服务以允许外部应用程序查找公司内的产品信息
您可以创建一个Web服务,以允许外部应用程序向您的公司提交订单.
是的,这是一个简单的Web服务.
Web服务实际上只是一种允许客户端远程访问/修改数据的请求/响应机制.Web服务有正式标准(SOAP,SOA等),但您的简单页面也是一种服务.
将其打印到页面的主要缺点是您的服务将返回HTML.优选的数据格式是JSON和XML,因为大多数客户端框架(和服务器框架)都是围绕使用JSON和XML而设计的.
因此,如果您修改了服务以返回:
some random number
而不是:
... some random number
那对大多数客户来说会更有用
简单来说,Web服务是通过http协议提供数据服务的东西.虽然情况并非如此......但它很接近.
标准Web服务使用SOAP协议定义消息的通信和结构,XML是数据格式.
Web服务旨在允许使用不同技术构建的应用程序相互通信而不会出现问题.
Web服务的示例包括Weather.com提供您可以在您的站点上使用的天气信息,或UPS提供请求运送报价或跟踪包裹的方法.
编辑
改变了关于SOAP的措辞,因为它并不总是我提到的SOAP,但是想让它更清晰.关键是将数据作为服务提供,而不是UI元素.
Web服务与Web站点的不同之处在于Web服务提供可由软件而非人类使用的信息.因此,我们通常会讨论公开的JSON,XML或SOAP服务.
Web服务是"mashup"中的关键组件.混搭是指来自许多网站的信息自动汇总到新的有用服务中.例如,有些网站会将Google地图与警方报告的信息进行汇总,以便为您提供所在地区犯罪的图形表示.另一种混搭方式是获取另一个网站提供的真实股票数据,并将其与假交易应用程序相结合,以创建股票市场"游戏".
Web服务还用于提供新闻(请参阅RSS),添加到站点的最新项目,新产品信息,播客以及使现代Web转变的其他强大功能.
希望这可以帮助!
最好的简单英语解释来自于使用类比:
网页允许人们彼此进行通信和协作.
Web服务允许程序相互通信和协作.
您的PHP示例是该定义的Web服务,因为输出可能被其他程序使用.但实际上,HTML屏幕抓取并不是生成Web服务的可靠或可维护的方式.
对于大多数网站,您使用浏览器时都会访问HTML页面.这些是人类可读的页面(一旦在您的浏览器中呈现),其中许多数据可能被挤在一起,因为它对人类有意义.
现在想象别人想要使用一些数据.他们可以下载你的页面并开始过滤掉所有"噪音"以获得他们想要的数据,但是大多数网站并不是建立在数据100%确定放在所有元素的同一位置的方式,所以另外如果麻烦,它也变得不可靠.
输入网络服务.
网站服务是网站选择向希望阅读,更新和/或删除网站数据的用户提供的服务.您可以将其称为数据的"后门".它不是将数据作为网页的一部分呈现,而是以预先确定的方式提供,其中一些更受欢迎的是XML和JSON.有几种方法可以与Web服务进行通信,一些使用SOAP,另一些使用REST的Web服务等.
所有Web服务的共同点是它们是网站提供的网页的机器可读等效项.这意味着希望使用数据的其他人可以发送请求以获取易于解析和使用的特定数据.有些网站可能会要求您在请求中提供用户名/密码以获取敏感数据,而其他网站则允许任何人提取他们可能需要的任何数据.
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消息以获取帐户注册过程的结果.
Web服务是一种技术,两个或多个远程Web应用程序通过网络/互联网相互交互.它可以使用Java,.net,PHP等实现.
Web服务的特点: -
使用Web服务,两个或多个系统通过网络交换数据.使用XML或JSON交换数据.
任何Web服务都有两部分服务器端部署服务,其中客户端部分由客户端访问服务.任何Web服务都可以有多个客户端.当旅游门户网站出售客机的门票时.Portal是客户端,航空公司是销售其服务的服务器.
Web服务可以是同步的,也可以是异步的.Web应用程序可以与许多Web服务交互,但这些Web服务与其客户端Web应用程序松散耦合.这意味着父应用程序中的任何更改对Web服务几乎没有影响,反之亦然.
Web服务可以携带附件文档,如PDF,Word等及其XML有效负载.Java为此类Web服务提供单独的API.
Web服务始终将服务的内部复杂性隐藏到其客户端.例如,通过第三方门户销售门票的客机仅通过网络服务收集最终用户信息,作为回报,它提供票证.销售门票的门户网站不必担心航空公司机票预订系统的内部复杂性.
Web服务可以是火灾和遗忘类型,也可以返回一些东西.假设,Web应用程序只想将某些信息发送给第三方应用程序.发送者不需要来自接收者的任何确认.在这种情况下,我们需要一种火灾和忘记类型的Web服务.
Simple way to explain web service is ::
Web服务是通过万维网在两个电子设备之间进行通信的方法.
它可以被称为程序员用来与服务器通信的进程
要调用此过程,程序员可以使用SOAP等
Web服务建立在TCP/IP,HTTP等开放标准之上
Web服务的优点是,假设您在.net中开发了一段代码,并且您希望使用JAVA来使用此代码.您可以直接与抽象层交互,并且不知道用于开发代码的技术.
软件开发人员使用的Web服务通常是指在远程服务器上执行并使用XML/SOAP规范调用的操作.与所有定义一样,它有细微差别,但这是该术语最常见的用法.
操作系统提供可与之交互的GUI(和CLI).它还提供了一个可以通过编程方式进行交互的API.
类似地,网站提供可以与之交互的HTML页面,并且还可以提供以编程方式提供相同信息和操作的API.或者这些服务可能只能通过没有相关用户界面的API获得.