大家好,又见面了,我是你们的朋友全栈君。
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解析,速度可能会有所降低
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157812.html原文链接:https://javaforall.cn