什么是SOAP

SOAP(Simple Object Access Protocol)一般指简单对象访问协议,简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息.## 核心技术  SOAP采用了已经广泛使用的两个协议:HTTP 和XML(标准通用标记语言下的一个子集)。HTTP用于实现 SOAP 的RPC 风格的传输, 而XML 是它的编码模式。采用几行代码和一个XML 解析器, HTTP 服务器( MS 的 IIS 或 Apache) 立刻成为SOAP 的 ORBS。SOAP 通讯协议使用 HTTP 来发送XML 格式的信息。HTTP与RPC 的协议很相似,它简单、 配置广泛,并且对防火墙比其它协议更容易发挥作用。HTTP 请求一般由 Web 服务器软件(如 IIS 和Apache)来处理, 但越来越多的应用服务器产品正在支持HTTP。XML 作为一个更好的网络数据表达方式( NDR)。SOAP 把 XML 的使用代码化为请求和响应参数编码模式, 并用HTTP 作传输。具体地讲, 一个SOAP 方法可以简单地看作遵循SOAP编码规则的HTTP请求和响应, 一个 SOAP终端则可以看作一个基于HTTP 的URL, 它用来识别方法调用的目标。像CORBA/ IIOP一样, SOAP不需要具体的对象绑定到一个给定的终端, 而是由具体实现程序来决定怎样把对象终端标识符映像到服务器端的对象。

优点

1.可扩展的。SOAP 无需中断已有的应用程序, SOAP 客户端、 服务器和协议自身都能发展。而且SOAP 能极好地支持中间介质和层次化的体系结构。

2.简单的。客户端发送一个请求,调用相应的对象, 然后服务器返回结果。这些消息是XML 格式的,并且封装成符合HTTP 协议的消息。因此,它符合任何路由器、 防火墙或代理服务器的要求。

3.完全和厂商无关。SOAP可以相对于平台、 操作系统、 目标模型和编程语言独立实现。另外,传输和语言绑定以及数据编码的参数选择都是由具体的实现决定的。

4.与编程语言无关。SOAP 可以使用任何语言来完成,只要客户端发送正确SOAP 请求( 也就是说, 传递一个合适的参数给一个实际的远端服务器)。SOAP 没有对象模型,应用程序可以捆绑在任何对象模型中。

5.与平台无关。SOAP 可以在任何操作系统中无需改动正常运行。

Why SOAP?

对于应用程序开发来说,使程序之间进行因特网通信是很重要的。

目前的应用程序通过使用远程过程调用(RPC)在诸如 DCOM 与 CORBA 等对象之间进行通信,但是 HTTP 不是为此设计的。RPC 会产生兼容性以及安全问题;防火墙和代理服务器通常会阻止此类流量。

通过 HTTP 在应用程序间通信是更好的方法,因为 HTTP 得到了所有的因特网浏览器及服务器的支持。SOAP 就是被创造出来完成这个任务的。

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

参考

https://blog.csdn.net/baidu_25340817/article/details/82253826

https://www.w3school.com.cn/soap/soap_intro.asp

http协议与soap协议之间的区别 https://blog.csdn.net/ttxs99989/article/details/81294958

https://baike.baidu.com/item/简单对象访问协议/3841505

最新文章

  1. php备份mysql的代码
  2. 基础知识javascript--事件
  3. [outlook]打开以后就自动进入安全模式的解决方法。Outlook start in safe mode.
  4. App_GlobalResources.afvubzdv.resources.dll”--“拒绝访问。“
  5. how to combine jpg + separate alpha in png?
  6. 关于 android的 渲染器 Shader
  7. elk 日志处理的一点思路
  8. java第十周学习总结
  9. ANSI控制码的说明
  10. 20155337 2016-2017-2 《Java程序设计》第七周学习总结
  11. ES-常见搜索方式
  12. react组件的数据传递
  13. webpack-manifest-plugin
  14. iOS的settings bundle中开关button(Toggle Switch)取不到值的问题
  15. 1001 A+B Format (20 分)
  16. python正则表达式,以及应用[下载图片]
  17. 20180711-统计PDB中的蛋白质种类、膜蛋白文件个数及信息等
  18. CentOS7.5下时间戳转换为时间
  19. 使用VisualStudio读写NI FPGA板卡实例(基于FPGA Interface C API Generator)
  20. QT中自定义系统托盘的实现—c++语言为例

热门文章

  1. Java Web学习(六)HttpServletRequest(客户端请求)
  2. keras中的mask操作
  3. Azure Storage 系列(六)使用Azure Queue Storage
  4. spring Boot面试题(2020最新版)
  5. Markdown 1.0.1
  6. 三级菜单打怪升级,young -> plus -> pro
  7. matlab中repmat函数的用法
  8. C语言中的左移与右移 <<, >> 位运算
  9. Matlab .asv文件
  10. angularCroppie