我曾多次听到REST与SOAP的比较,后者被揭穿为苹果与梨的比较(例如,这里,在stackoverflow:SOAP vs REST (differences)上)
尽管它们确实是不同的东西,但这种有缺陷的比较告诉我,旧的SOAP系统将与人们错误地标记为SOAP的某种体系结构风格并驾齐驱,因为它们是如此紧密耦合。
另外,如果REST是一种架构风格,那么主要与其一起使用的通信协议是什么?
总结一下,
REST对于X协议来说就像Y架构风格对于SOAP协议一样。
X和Y是什么?
发布于 2018-08-12 04:46:58
它们都是解决类似架构问题的方法-服务之间的松散耦合。我们可以在此列表中添加发布/订阅消息传递、竞争消费者模式等。在SOAP和ReST的情况下,它们通常连接web服务,SOAP触发业务事务会带来具体的实现指导,而用于CRUD操作的ReST只会带来一种模式。
关于第二点,ReST通信通常是通过超文本传输协议实现的,理论上它可以运行在其他通信协议上,尽管我不知道主流协议中有任何协议。
发布于 2018-08-12 08:05:34
你是对的,它们是两种不同的网络协议,和,它们有不同的目的。
REST更现代,更易于理解和编程。REST服务通常公开一个类似URL的API。请求以HTTP请求的形式传递,有效负载通常以JASON结构的形式传递。许多(如果不是大多数)公共服务使用REST。
REST是作为一种访问web服务的方式诞生的,这种方式比使用SOAP简单得多。
SOAP是一种更老、更复杂的协议,专为广泛的安全服务而设计。它更可靠,更安全--例如,如果消息丢失,它的内部协议可以重试,它还包括对安全性和数据库事务的强大支持。SOAP可以使用HTTP、SMTP、TCP、UDP协议进行操作,消息正文采用XML编码。
根据应用程序的不同,REST或SOAP可能仍然是正确的选择。他们提出了自己的问题,并在特定情况下有自己的优势。然而,在日益增长的基于web的公共服务世界中,REST是迄今为止最常见的选择。
因此,确实没有正确的答案:
REST对于X协议来说就像Y架构风格对于SOAP协议一样。X和Y是什么?
你可能会说:
REST适用于简单的数据交付服务,就像SOAP适用于安全的事务性服务(可能也适用于在服务器上更新复杂状态的情况)。
虽然我相信很多人会想要改进这一点:
https://stackoverflow.com/questions/51803139
复制相似问题