SOAP和REST之间的主要区别

2020.05.08 -

   

关于创建Web服务的方式,当前有两种主要的竞争方法:SOAP和REST。由于软件行业的发展方式(即热爱战斗),导致了激烈的辩论。 只是这一次,SOAP和REST甚至不在同一类别中, 本文将详细阐述SOAP和REST之间的主要区别。】

SOAP VS REST

SOAP和REST之间的主要区别

SOAP和REST都允许您创建自己的API。API代表应用程序编程接口。这样就可以将数据从一个应用程序传输到其他应用程序。API通过Internet协议(例如HTTP,SMTP和其他协议)接收请求并发送回响应。

许多受欢迎的网站都为其用户提供了公共API,例如Google Maps具有公共REST API,可让您使用自己的内容自定义Google Maps。公司还创建了许多供内部使用的API。

SOAP和REST是两种API样式,它们从不同的角度处理数据传输问题。

SOAP是一种标准化协议,可以使用其他协议(例如HTTP和SMTP)发送消息。在SOAP规范是官方网站的标准,维护和W3C开发的。与SOAP相反,REST不是协议,而是体系结构样式。REST体系结构规定了一组要提供RESTful Web服务时需要遵循的准则,例如,无状态存在和HTTP状态代码的使用。

由于SOAP是官方协议,因此它具有严格的规则和高级安全功能,例如内置的ACID合规性和授权。更高的复杂性,它需要更多的带宽和资源,这可能导致页面加载时间变慢。

REST是为了解决SOAP问题而创建的。因此,它具有更灵活的体系结构。它仅包含宽松的准则,并允许开发人员以自己的方式实施建议。它允许使用不同的消息格式,例如HTML,JSON,XML和纯文本,而SOAP仅允许XML。

REST也是一种更轻量级的体系结构,因此RESTful Web服务具有更好的性能。因此,它在移动时代变得非常流行,在移动时代,甚至几秒钟都很重要(无论是页面加载时间还是收益)。

REST代表什么?

REST代表代表性状态转移。它是一种体系结构样式,它定义了一组建议,用于设计使用HTTP协议进行数据传输的松耦合应用程序。REST没有规定如何在较低级别上实现这些原则。

相反,REST准则允许开发人员根据自己的需求实施细节。遵循REST体系结构样式构建的Web服务称为RESTful Web服务。

要创建REST API,您需要遵循六个架构约束:

  1. 统一的接口。 来自不同客户端的请求应该看起来相同,例如,同一资源不应有多个URI。
  2. 客户端-服务器分离。 客户端和服务器应独立运行。他们应仅通过请求和响应进行交互。
  3. 无状态。 不应有任何服务器端会话。每个请求应包含服务器需要知道的所有信息。
  4. 可缓存资源。 服务器响应应包含有关其发送的数据是否可缓存的信息。可缓存资源应带有版本号,以便客户端可以避免多次请求相同数据。
  5. 分层系统。 客户端和返回响应的服务器之间可能有多层服务器。这不应影响请求或响应。
  6. 按需代码[可选]。 必要时,响应可以包含客户端可以执行的可执行代码(例如,HTML响应中的JavaScript)。

SOAP代表什么?

SOAP代表简单对象访问协议。它是用于在分散和分布式环境中交换数据的消息传递协议。SOAP可以与任何应用程序层协议一起使用,例如HTTP,SMTP,TCP或UDP。它以XML格式将数据返回给接收器。安全性,授权和错误处理已内置在协议中,与REST不同,它不假定直接点对点通信。

因此,它在分布式企业环境中表现良好。SOAP遵循一种正式的标准化方法,该方法指定了如何对API返回的XML文件进行编码。SOAP消息实际上是一个普通的XML文件,由以下部分组成:

  1. 信封(必填)–这是消息的开始和结束标签。
  2. 标头(可选)–它包含消息的可选属性。它允许您以模块化和分散的方式扩展SOAP消息。
  3. 正文(必填)–它包含服务器传输到接收者的XML数据。
  4. 故障(可选)–它包含有关在处理消息期间发生的错误的信息。

SOAP与REST比较表

尽管REST在当今非常流行,但是SOAP在Web服务领域仍然占有一席之地。为了帮助您在它们之间进行选择,这是SOAP和REST的对照表,其中突出显示了两种API样式之间的主要区别:

名字 SOAP REST
含义简单对象访问协议代表性状态转移
设计遵循预定义规则的标准化协议。具有宽松指南和建议的建筑风格。
方法功能驱动(作为服务可用的数据,例如:“ getUser”)数据驱动的(作为资源可用的数据,例如“用户”)。
有状态默认情况下为无状态,但可以使SOAP API成为有状态。无状态(无服务器端会话)。
API无法调用API调用。可以缓存API调用。
安全带有SSL支持的WS-Security。内置ACID合规性。支持HTTPS和SSL。
性能需要更多的带宽和计算能力。需要更少的资源。
讯息格式仅XML。纯文本,HTML,XML,JSON,YAML等。
传输协议HTTP,SMTP,UDP等。仅HTTP
推荐用于企业应用程序,高安全性应用程序,分布式环境,金融服务,支付网关,电信服务。用于Web服务,移动服务,社交网络的公共API。
优点高安全性,标准化,可扩展性。可扩展性,更好的性能,浏览器友好性,灵活性。
缺点性能较差,复杂性更高,灵活性更差。安全性较低,不适用于分布式环境。

到目前为止,您已经了解到这两种方法都有其优点和缺点,尽管REST是目前最流行的样式,但这并不意味着每个人都应该立即丢弃SOAP。

您现在也应该清楚我们所涵盖的每个术语的性质。SOAP和REST是开发Web服务的方法,尽管它们在根本上是不同的东西。前者是一种正式协议,而后者是一种体系结构样式。这种本质上的差异引起了许多重要的实际差异。

本站文章禁止转载,违者必究
阅 204
0

关于创建Web服务的方式,当前有两种主要的竞争方法:SOAP和REST。由于软件行业的发展方式(即热爱战斗), […]

湘公网安备 43011102001693号

    湘ICP备19003021号-1