目前,我发现类似的情况是使用internet协议(HTTP)在消费者和提供者之间交换数据。
区别是:
h 19SOAP不只是通过HTTP、FTP等其他协议,REST仅用于HTTPH 210g 211。
这就是我所知道的他们之间的区别。谁能纠正我并增加更多。
发布于 2012-06-11 07:34:11
SOAP使用WSDL进行通信,而REST只使用XML或JSON发送和接收数据。
WSDL定义了客户端和服务之间的契约,并且本质上是静态的。在REST协议比较复杂的情况下,由HTTP、URI、Media格式和应用程序特定的协调协议定义。它是高度动态的,不像WSDL。
SOAP不返回人类可读的结果,而REST结果只能用普通的XML或JSON读取。
这不是真的。简单的XML或JSON根本不是RESTful。它们都没有定义任何控件(即链接和链接关系、方法信息、编码信息等)。这与REST相反,因为消息必须是独立的,并协调代理/客户端和服务之间的交互。
通过链接+语义链接关系,客户端应该能够确定下一步的交互步骤,并遵循这些链接并继续与服务进行通信。
没有必要让消息具有人类可读性,可以使用神秘的格式并构建完全有效的REST应用程序。消息是否是人类可读的并不重要。
因此,普通XML(application/xml)或JSON(application/json)并不足以构建REST应用程序。使用这些具有强大语义并提供足够的控制信息(链接等)的通用媒体类型的子集总是合理的。协调客户端和服务器之间的交互。
有关控制信息的更多详细信息,我强烈建议阅读:http://www.amundsen.com/hypermedia/hfactor/
REST仅在HTTP之上
不是这样的,HTTP是使用最广泛的,当我们谈到REST web服务时,我们只是假设HTTP。HTTP定义了与它的方法(GET、POST、PUT、DELETE、补丁等)和各种标题的接口,这些标题可以统一地用于与资源的交互。这种一致性也可以与其他协议实现。
P.S.关于REST的简单而有趣的解释:http://www.looah.com/source/view/2284
发布于 2013-03-21 00:27:22
在日常的实际编程术语中,最大的区别在于使用SOAP时,您使用的是静态和强定义的数据交换格式,与REST和JSON数据交换格式相比,这种格式非常松散。例如,使用SOAP,您可以验证交换的数据是否与XSD模式匹配。因此,XSD作为客户端和服务器如何理解如何进行数据交换的“契约”。
JSON数据通常不会按照强定义的格式传递(除非您使用的是支持它的框架)。例如http://msdn.microsoft.com/en-us/library/jj870778.aspx或实现json)。
事实上,一些人(大多数)会争辩说,JSON的“动态”秘密沙司违背了用数据契约(Should JSON RESTful web services use data contract)约束它的哲学/文化。
习惯于在动态、松散类型语言中工作的人倾向于对JSON的松散感到更舒服,而来自强类型语言的开发人员则更喜欢XML。
发布于 2012-06-11 07:20:49
SOAP带来了自己的协议,并专注于将应用程序逻辑(而不是数据)公开为服务。SOAP公开操作。SOAP侧重于访问命名操作,每个操作通过不同的接口实现一些业务逻辑。
虽然SOAP通常被称为“web服务”,但这是用词不当的。SOAP与Web几乎没有任何关系。REST基于URI和HTTP提供真正的“Web服务”。
作为说明,这里有几个电话和他们适当的家与评论。
getUser(User);这是访问资源(数据)时的rest操作。
switchCategory(User, OldCategory, NewCategory)REST允许许多不同的数据格式,因为SOAP只允许XML。虽然这似乎增加了REST的复杂性,因为您需要处理多种格式,但在我的经验中,它实际上是非常有益的。JSON通常更适合数据和更快的解析。REST允许更好地支持浏览器客户端,因为它支持JSON。
https://stackoverflow.com/questions/10975863
复制相似问题