Java中SOAP和rest式web服务的主要区别

现在我对SOAP和宁静的服务之间的区别有了一点了解。

我的问题是什么时候应该使用SOAP,什么时候应该使用RESTful;当谈到性能/速度或请求处理时,哪一个“更好”?

我是第一次在RESTful (Java)实现它,我想知道更多关于它;我以前处理过SOAP。

这是这篇文章的后续问题。

628182 次浏览

REST几乎总是更快。SOAP的主要优点是它提供了一种机制,可以让服务向客户端描述自己,并宣传它们的存在。

REST轻量级得多,几乎可以使用任何工具实现,从而降低带宽,缩短学习曲线。然而,客户端必须知道要发送什么以及期望发送什么。

通常,当您向外界发布复杂或可能更改的API时,SOAP将更有用。除此之外,REST通常是更好的选择。

  1. REST没有WSDL (Web描述语言)接口定义。

  2. REST基于HTTP,但SOAP可以基于任何传输协议,如HTTP、FTP、SMTP、JMS等。

REST是一个体系结构。
REST将给出人类可读的结果。
REST是非状态的。
REST服务很容易被缓存。
< / p >

SOAP是一种协议。它可以运行在JMS、FTP和HTTP之上。

REST vs. SOAP Web服务

我看到很多新的web服务都是使用REST实现的 风格体系结构,而不是SOAP体系结构。让我们后退一步

什么是REST web服务?

首字母缩写REST代表具象状态转移,而这个 基本上意味着每个唯一的URL都代表了一些 对象。您可以使用HTTP get来获取该对象的内容 删除它,然后可以使用POST、PUT或delete来修改

.对象(实际上,大多数服务使用POST来实现此功能)

谁在使用REST?

雅虎所有的网络服务都使用REST,包括Flickr美味的

api使用它,pubsub, bloglines, Technorati,以及eBay和Amazon 为REST和SOAP提供web服务

谁在使用SOAP?

谷歌接缝在实现他们的web服务时保持一致 使用SOAP,除了Blogger,它使用xml - rpc。你会 在许多企业软件中也可以找到SOAP web服务

休息vs.肥皂

你可能已经注意到我提到的公司都在使用REST api还没有出现很长时间,他们的api是这样出现的 主要是。所以REST绝对是创建网络的流行方式 服务,如果创建web服务可以成为潮流(让我们面对它 你用肥皂洗漱,累了就休息)。主要的 REST web服务的优点是:

  • 轻量级-没有太多额外的XML标记人类可读结果

  • 易于构建-不需要工具包。SOAP还有一些优点:

容易消耗-有时是刚性类型检查,坚持a 合同开发工具对于使用web服务,它有时是一个 两者之间比较容易。例如谷歌的AdWords web service真的很难消费(在ColdFusion中),它使用SOAP 头文件,以及其他一些让它变得有点困难的东西。 相反,亚马逊的REST web服务有时会很棘手 解析,因为它可以是高度嵌套的,并且结果模式可以变化

无论你选择哪种架构,都要确保它对开发人员来说很容易

Freitag, P.(2005)。“REST vs SOAP Web服务”。检索自http://www.petefreitag.com/item/431.cfm on June 13, 2010

肥皂

简单对象访问协议(SOAP)是一种标准的XML语言,定义了消息体系结构和消息格式。Web服务使用它。它包含操作的描述。

WSDL是一种基于xml的语言,用于描述Web服务以及如何访问它们。它将运行在SMTP, HTTP, FTP等。它需要中间件支持和定义良好的机制来定义WSDL+XSD和WS-Policy等服务。 SOAP将返回基于XML的数据

休息

具象状态传输(RESTful) web服务。它们是第二代Web服务。

基于rest的web服务通过HTTP而不是基于soap的服务进行通信,并且不需要XML消息或WSDL服务api定义。对于REST中间件不需要,只需要HTTP支持。它是一个WADL标准,REST可以返回XML、纯文本、JSON、HTML等。

SOAP Web服务:

  1. 如果您的应用程序需要有保证的可靠性和安全性级别,那么SOAP将提供额外的标准来确保这种类型的操作。
  2. 如果双方(服务提供者和服务使用者)必须就交换格式达成一致,那么SOAP将为这种类型的交互提供严格的规范。

RestWeb服务:

  1. 完全无状态操作:用于无状态CRUD(创建、读取、更新和删除)操作。
  2. 缓存情况:如果信息需要缓存。

REST在大多数情况下更容易使用,也更灵活。与SOAP不同,REST不必使用XML来提供响应。我们可以找到基于rest的Web服务,这些服务以命令分隔值(CSV)、JavaScript对象符号(JSON)和真正简单联合(RSS)格式输出数据。

我们可以以一种易于在应用程序所需的语言中解析的形式获得所需的输出。REST更高效(使用更小的消息格式)、更快,并且在设计理念上更接近其他Web技术。

SOAP web服务总是执行POST操作,而使用REST,您可以选择特定的HTTP方法,如GET、POST、PUT和DELETE。

例如:要使用SOAP获取一个项目,您应该创建一个请求XML,但是在REST的情况下,您可以在URL本身中指定项目id。

休息vs.肥皂

SOAP:

SOAP是运行在TCP/UDP/SMTP上的简单对象访问协议。
SOAP以XML格式读取和写入请求响应消息。
SOAP使用接口来定义服务。
SOAP更安全,因为它有自己的安全性和定义良好的标准。
SOAP遵循RPC和文档风格来定义web服务。
SOAP使用SOAP- ui作为客户端工具进行测试

休息

►REST是使用底层HTTP协议的具象化状态传输。
►REST无状态。
REST是一种用于描述和定义web服务的架构风格。
REST可以读取和写入JSON/XML/普通HTML格式的请求响应消息。
►REST对web服务中使用的每个资源使用URI。资源可以是图像、文本、方法等 REST使用一组动词,比如HTTP的GET、POST、PUT、DELETE。
与SOAP UI相比,REST易于开发和管理。
REST有轻量级的客户端工具或插件,可以很容易地集成到浏览器中。
REST服务是可缓存的。
< / p >
  • REST代表代表状态传输,而SOAP代表简单对象访问协议

  • SOAP定义了自己的安全性,其中REST从底层传输继承了安全性。

  • SOAP不支持错误处理,但是REST有内置的错误处理

  • REST是轻量级的,不需要XML解析。REST可以被任何客户端使用,甚至是带有Ajax和JavaScript的web浏览器。REST使用更少的带宽,它不需要每个消息都有SOAP头。

    • REST比任何提供URI的协议都有用。忽略下面图片中提到的REST的第5点。
    • 李< / ul > < / >

    SOAP vs. REST

REST和SOAP的区别:

Enter image description here