RESTful比SOAP快吗?什么时候使用其中一个?

时间:2009-06-14 16:44:39

标签: web-services soap rest

重复:这是“What are the best uses of REST services?”和其他许多内容的副本。请关闭它。

在网页开发中:

我是否应该非常好地学习RESTful服务并使用它来完成我未来的所有项目?它比SOAP服务更快吗?何时使用哪个?

在某些情况下我应该更喜欢其中一种吗?

8 个答案:

答案 0 :(得分:6)

根据我的经验,SOAP会增加一些开销,您可以通过创建RESTful服务来避免这些开销。话虽如此,在您的决定中,您应该考虑您的受众。如果您希望服务中有各种各样的外部消费者,我会推荐使用SOAP,因为有很多工具会自动生成一个编程接口。

某些网络服务(如PayPal)提供了多种替代方案,因此您也可以考虑选择这两种方式。

答案 1 :(得分:4)

在大多数情况下,REST应该比SOAP更快,因为它更轻,更少开销。

但是在某些情况下,您需要具有该开销的功能。

除非您想要标准化(这会减少解决方案中的技术数量,从而减少复杂性),但经验法则是在可以使用REST时使用REST,而在必要时使用SOAP。

答案 2 :(得分:3)

简单对象访问协议(SOAP)标准一种定义消息体系结构和消息格式的XML语言,由Web服务使用,它包含操作的描述。 WSDL是一种基于XML的语言,用于描述Web服务以及如何访问它们。将运行在SMTP,HTTP,FTP等上。需要中间件支持,定义良好的机制来定义WSDL + XSD等服务,WS-Policy SOAP将返回基于XML的数据SOAP提供安全性和可靠性标准

Representational State Transfer(RESTful)Web服务。它们是第二代Web服务。 RESTful Web服务,通​​过HTTP进行通信而不是基于SOAP的服务,并且不需要XML消息或WSDL服务API定义。对于REST,不需要中间件只需要HTTP支持.WADL标准,REST可以返回XML,纯文本,JSON,HTML等

许多类型的客户端更容易使用RESTful Web服务,同时使服务器端能够发展和扩展。客户可以选择使用服务的部分或全部方面,并将其与其他基于Web的服务进行混搭。

REST uses standard HTTP so it is simplerto creating clients, developing APIs 2.REST permits many different data formats like XML, plain text, JSON, HTML where as SOAP only permits XML.
REST has better performance and scalability.
Rest and can be cached and SOAP can't 5.Built-in error handling where SOAP has No error handling
REST is particularly useful PDA and other mobile devices.

REST服务很容易与现有网站集成。

SOAP具有一组协议,这些协议提供安全性和可靠性标准,并与其他符合WS的客户端和服务器互操作。 SOAP Web服务(例如JAX-WS)在处理异步处理和调用时非常有用。

对于Complex API,SOAP将更有用。

答案 3 :(得分:2)

一个因素是RPC通信通常不作为HTTP堆栈的一部分进行缓存,因为缓存中间件不需要理解请求的内容。因此,RESTful系统可以更好地利用缓存。

答案 4 :(得分:1)

我的客户端(主要运营商)实际上对REST进行了性能测试,并对其API进行了SOAP访问,发现差异几乎不存在。 XML解析器现在非常快,除此之外,使用SOAP时实际开销并不大。合同(WSDL)及其所有规则和规范是在编写或更新客户端程序时发挥作用的,而不是在与API的实时交换范围内。

答案 5 :(得分:0)

如果没有相反的明确要求,您应该始终更喜欢REST和SOAP。有(很少)SOAP为您提供所需的东西(随着REST的改进,这些时间将变得更加罕见,例如具有WADL标准),但在一般情况下,SOAP只是令人头痛的问题。你已经站在那里等待着。

答案 6 :(得分:0)

要直接回答您的问题,我会说。 REST通常被认为是较轻的替代品。此外,在目前阶段,REST仍然被许多人考虑/实践为更多的“方向/指南”,而不是完整的协议。

有一篇有趣的文章描述了他们在interesting dialogue中的差异。

就我个人而言,我认为在正常人选择的所有情况下,REST应该比SOAP好得多。另一方面,设计真正的REST架构需要大量的规划和考虑。大多数尝试都失败并成为STREST(在上面的文章中提到),这就像混合SOAP和REST并失去REST提供的一些好处。

答案 7 :(得分:-1)

REST几乎总是更快,因为处理更少,信封更小。