简述SOAP协议「建议收藏」

简述SOAP协议「建议收藏」8个月过去了,依旧清楚的记得研究生复试时,老师问我SOAP协议是啥(当时还不知道这个协议的名字到底该怎么写),今天偶然之间看见了一篇博客提到了SOAP(见下图),于是就查了一下SOAP协议。SOAP是基于XML的简易协议,可使应用程序在HTTP之上进行信息交换。更简单地说:SOAP是用于访问网络服务的协议。什么是SOAP?SOAP指简易对象访问协议SOAP是一种…


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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.net/157812.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • setproperty java_Java中System.setProperty()的用法

    setproperty java_Java中System.setProperty()的用法该方法的作用是:设置指定键指示的系统属性在实际项目中发现,如果一个服务器下放置了多个web项目的话,在一个项目中通过调用System.setProperty设置了某个值,再另一个项目中也能获取到该值,所以如果想在一个项目中设置全局变量时尽量避免使用这个方法,应该调用相应的appContext。/**设置指定键对值的系统属性*setProperty(Stringprop,Stringva…

    2022年7月12日
  • 曼昆 《经济学原理》(第5版)_曼昆经济学原理第几版好

    曼昆 《经济学原理》(第5版)_曼昆经济学原理第几版好第一章经济学十大原理在本章中你将——知道经济学研究稀缺性资源配置考察人们面临的一些交替关系知道机会成本的含义懂得在作出决策时如何运用边际推理讨论激励如何影响人们的行为考虑为什么人们或国家之间的交易可以使各方面受益-9经济学原理第五版 讨论为什么市场是一种良好的、但并不是完善的资源配置方式了解是什么因

    2022年9月19日
  • 命令提示符运行Python程序

    命令提示符运行Python程序1.打开DOS窗口快捷键windows+R2.切换目录到Python程序所在的目录我的Python程序存放在D:\python\program中,文件为hi.py

    2022年10月20日
  • unity3d教程视频_unity3d零基础自学教程

    unity3d教程视频_unity3d零基础自学教程Unity3D游戏开发知识系列图                        1、Unity3d基础操作说明:这部分课程是帮助掌握Unity基础的操作,为阶段的学习打下基础1)Unity3D初级课程之新手入门   课程地址:http://www.taikr.com/course/4292、NGUI3、Pl

    2022年9月19日
  • matlab函数rand,randn,randi用法整理

    matlab函数rand,randn,randi用法整理Matlab学习笔记——函数使用

    2022年7月17日
  • C# dll反编译(dll反编译破解)

    下面是修改IL文件然后重新生成DLL的步骤,适用于dll文件没有源码,但是需要修改一点点的小改动问:为啥不直接用dnspy进行修改?答:我这边需要修改.net2.0上编译的一个库,用dnspy反编译后修改了代码,,运行反倒有问题,因此怀疑通过dnspy修改库最后的编译环境和原有库的编译环境不一致,考虑到dnspy自身需要.net4.0以上环境才能运行,所以这里采用修改IL文件的方法…

    2022年4月12日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号