简述SOAP协议

8个月过去了,依旧清楚的记得研究生复试时,老师问我SOAP协议是啥(当时还不知道这个协议的名字到底该怎么写),今天偶然之间看见了一篇博客提到了SOAP(见下图),于是就查了一下SOAP协议。
在这里插入图片描述

SOAP 是基于 XML 的简易协议,可使应用程序在 HTTP 之上进行信息交换。
更简单地说:SOAP 是用于访问网络服务的协议

什么是 SOAP?

  • SOAP 指简易对象访问协议
  • SOAP 是一种通信协议
  • SOAP 用于应用程序之间的通信
  • SOAP 是一种用于发送消息的格式
  • SOAP 被设计用来通过因特网进行通信
  • SOAP 独立于平台
  • SOAP 独立于语言
  • SOAP 基于 XML
  • SOAP 很简单并可扩展
  • SOAP 允许您绕过防火墙
  • SOAP 将被作为 W3C 标准来发展

SOAP是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP)、简单邮件传输协议(SMTP)、多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。

SOAP协议可以简单地理解为:SOAP=RPC+HTTP+XML,从而允许服务提供者和服务客户经过防火墙在Internet上进行通信交互。

  • HTTP作为通信协议
  • RPC(Remote Procedure Call Protocol,远程过程调用协议)作为一致性的调用途径
  • XML作为数据传送的格式
  • SOAP封装(envelop):定义了一个框架,描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们;
  • SOAP编码规则(encoding rules):定义了一种序列化机制,用于表示应用程序需要使用的数据类型的实例;
  • SOAP RPC表示(RPC representation):定了一个协定,用于表示远程过程调用和应答;
  • SOAP绑定(binding):定义了SOAP使用哪种协议交换信息。使用HTTP、TCP、UDP都可以。

使用SOAP的原因

SOAP 提供了一种标准的方法,使得运行在不同的操作系统、使用不同的技术和编程语言的应用程序可以互相进行通信。

SOAP的优点

  • 可扩展:SOAP 无需中断已有的应用程序, SOAP 客户端、 服务器和协议自身都能发展,而且SOAP 能极好地支持中间介质和层次化的体系结构。
  • 简单:客户端发送一个请求,调用相应的对象, 然后服务器返回结果。这些消息是XML 格式的,并且封装成符合HTTP 协议的消息。因此,它符合任何路由器、 防火墙或代理服务器的要求。
  • 完全和厂商无关:SOAP可以相对于平台、 操作系统、 目标模型和编程语言独立实现。另外,传输和语言绑定以及数据编码的参数选择都是由具体的实现决定的。
  • 与编程语言无关:SOAP 可以使用任何语言来完成,只要客户端发送正确SOAP 请求( 即传递一个合适的参数给一个实际的远端服务器)。SOAP 没有对象模型,应用程序可以捆绑在任何对象模型中。
  • 与平台无关:SOAP 可以在任何操作系统中无需改动正常运行

SOAP和HTTP有什么区别?

二者都是底层的通信协议

请求包的格式不同:SOAP是XML格式,HTTP是纯文本格式
SOAP可以传递结构化的数据,HTTP只能传输纯文本数据
SOAP相对HTTP(post/get)由于要进行XML解析,速度可能会有所降低

你可能感兴趣的:(日常,SOAP,协议)