有人能用通俗易懂的英语解释一下什么是REST,什么是SOAP吗?Web服务是如何工作的?
当前回答
SOAP -“简单对象访问协议”
SOAP是一种在Internet上传输消息或少量信息的简单方法。SOAP消息是XML格式的,通常在发送时控制HTTP。
REST -“具象状态传输”
REST是风扇和服务器之间的可能性和接收信息的基本过程,它没有明确定义许多标准。您可以以JSON、XML甚至纯文本的形式发送和接受信息。与SOAP相比,它是轻量级的。
其他回答
SOAP的问题在于它与HTTP栈背后的理想相冲突。任何中间件都应该能够在不了解请求或响应内容的情况下处理HTTP请求,但例如,常规的HTTP缓存服务器如果不知道SOAP内容的哪些部分与缓存有关,则无法处理SOAP请求。SOAP只是使用HTTP作为它自己的通信协议的包装器,就像代理一样。
关于SOAP和REST的简单解释
SOAP -“简单对象访问协议”
SOAP是一种在Internet上传输消息或少量信息的方法。SOAP消息是XML格式的,通常使用HTTP(超文本传输协议)发送。
休息-具象状态转移
Rest是一种在客户端和服务器之间发送和接收数据的简单方法,它没有定义很多标准。您可以以JSON、XML甚至纯文本的形式发送和接收数据。与SOAP相比,它是轻量级的。
SOAP和REST都是指不同系统相互通信的方式。
REST使用的技术类似于浏览器与web服务器之间的通信:使用GET请求一个网页,在表单字段中发布,等等。
SOAP提供了类似的功能,但是通过来回发送XML块来完成所有工作。SOAP的另一个关键组件是WSDL,它是一种描述支持哪些函数和数据元素的XML文档。可以使用wsdl以编程方式“发现”支持哪些函数,以及生成编程代码存根。
我喜欢布莱恩·r·邦迪的回答。我只是想补充一点,维基百科对REST提供了清晰的描述。本文将它与SOAP区别开来。
REST是一种状态信息交换,尽可能简单地完成。
SOAP是一种使用XML的消息协议。
许多人从SOAP转向REST的主要原因之一是与基于SOAP的web服务相关的WS-*(称为WS splat)标准极其复杂。请参阅维基百科的规格列表。这些规范中的每一个都非常复杂。
编辑:由于某些原因链接不能正确显示。REST = http://en.wikipedia.org/wiki/REST
WS-* = http://en.wikipedia.org/wiki/WS-*
我将从第二个问题开始:什么是Web服务?原因显而易见。
WebServices本质上是公开某些功能或数据的逻辑片段(您可以模糊地将其称为方法)。客户端实现(技术上讲,消费是这个词)只需要知道方法将要接受的参数是什么,以及它将要返回的数据类型(如果它确实要返回的话)。
下面的链接以极其清晰的方式讲述了关于REST和SOAP的一切。
REST vs SOAP
如果您还想知道什么时候选择什么(REST或SOAP),那么更有理由经历它!
推荐文章
- 有没有REST api的命名规范指南?
- 什么是HTTP中的“406-不可接受的响应”?
- 哪些HTTP方法与哪些CRUD方法相匹配?
- 如何从iPhone访问SOAP服务
- RESTful服务中部分更新的最佳实践
- JAX-RS / Jersey如何自定义错误处理?
- 如何POST表单数据与Spring RestTemplate?
- Restful API服务
- 在用nodejs和express创建的REST API中设置响应状态和JSON内容的正确方法
- 如何POST JSON数据与PHP卷曲?
- REST身份验证方案的安全性
- 如何在package.json中使用“main”参数?
- 跨REST微服务的事务?
- 致命错误:未找到类“SoapClient”
- 调用webrequest, POST参数