SOAP的是什么的简写

soap是(Simple Object Access Protocal)的简写,即简单对象访问协议,它描述了一种在分散或分布式的环境中如何交换信息的轻量级协议。

soap用来干什么的

SOAP在http协议的基础上,是基于XML的简易协议,可使应用程序在HTTP之上进行信息交换,也就是用于访问网络服务的协议。SOAP的优点是可以传递结构化的数据,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器。Web服务器再把这些请求转发给Web service请求处理器,它解析收到的SOAP请求,调用Web service,处理后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP应答的方式把它送回到客户端。从HTTP协议的角度看,最基本的四种操作是GET(查),POST(改),PUT(增),DELETE(删),我们用的比较多的是POST和GET方式。而SOAP可视为POST的一个专用版本,遵循一种特殊的XML消息格式。

soap的组成部分

包括四个部分

  • SOAP封装:它定义了一个整体框架用来表示消息中包含什么内容,谁来处理,以及这些内容是可选的或是必需的。
  • SOAP编码规则:定义了用以交换应用程序定义的数据类型的实例的一系列机制。
  • SOAP RPC:表示定义了一个用来表示远程调用和应答的协议。
  • SOAP绑定:定义了一种使用底层传输协议来完成在节点间交换SOAP封装的约定。

soap协议的语法规则

构建模块

  一条SOAP消息就是一个普通的XML文档,包含下列元素:

      1)必需的Envelope元素,可把此XML文档表示为一条SOAP消息。

      2)可选的Header元素,包含头部信息。

      3)必需的Body元素,包含所有的调用和响应消息;

      4)可选的Fault元素,提供有关在处理此消息发生错误的信息

语法规则

      1)SOAP消息必须用XML来编码;

      2)SOAP消息必须使用SOAP Envelope命名空间

      3)SOAP消息必须使用SOAP Encoding命名空间

      4)SOAP消息不能包含DTD引用

(文档类型定义(DTD,Document Type Definition)是一种特殊文档,它规定、约束符合标准通用标示语言(SGML)或SGML子集可扩展标示语言(XML)规则的定义和陈述。)

      5)不能包含XML处理指令

SOAP基本的消息结构

  <?xml  version="1.0"?>
    <soap:Envelope  xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
    <soap:Header>
    <!--示例-->
    </soap:Header>
    <soap:Body>
    <!--示例-->
    <soap:Fault>
    <!--示例-->
    </soap:Fault>
    </soap:Body>
    </soap:Envelope>

soap协议的优点

  • 可扩展的

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

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

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

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

    SOAP可以在任何操作系统中无需改动正常运行。

总结

SOAP与XML的关系:所有的SOAP消息都使用XML形式编码

SOAP简单的理解就是这样的一个开放协议SOAP=RPC+HTTP+XML:

采用HTTP作为底层通讯协议;RPC作为一致性的调用途径,XML作为数据传送的格式,允许服务提供者和服务客户经过防火墙在INTERNET进行通讯交互。

一个SOAP方法可以简单地看作遵循SOAP编码规则的HTTP请求和响应, 一个 SOAP终端则可以看作一个基于HTTP的URL, 它用来识别方法调用的目标。像CORBA/IIOP一样, SOAP不需要具体的对象绑定到一个给定的终端, 而是由具体实现程序来决定怎样把对象终端标识符映像到服务器端的对象。

简单了解soap协议的更多相关文章

  1. C#如何使用Soap协议调用WebService?

    WebService是什么?它的作用? WebService是一个平台独立.低耦合的.自包含的.基于可编程的可使用xml描述.调用的web应用程序,用于开发分布式的交互式的应用程序. Soap是什么? ...

  2. soap协议有get方式

    今天去面试,被问到了这个问题.一时没想起来.考官的说法是没有 get,使用post 发请求.restful 有get put delete等谓词. 特地查了一下.记在下边. <system.we ...

  3. 08_使用TCP/IP Monitor监视SOAP协议

    [SOAP定义] SOAP   简单对象访问协议,基于http传输xml数据,soap协议体是xml格式.SOAP   是一种网络通信协议SOAP   即Simple Object Access Pr ...

  4. Java实现SOAP协议 之 HelloWorld

    Java实现SOAP协议 之 HelloWorld SOAP是把基于HTTP的WEB技术与XML的灵活性和可扩展性组合在了一起. 准备: 1. 准备一个web server.Tomcat 下载地址 h ...

  5. 使用TCP/IP Monitor监视Soap协议

    什么是soap? soap,简单对象访问协议,基于http传输xml数据,soap协议体是xml格式. SOAP 是一种网络通信协议 SOAP即Simple Object Access Protoco ...

  6. 网络协议 20 - RPC 协议(上)- 基于XML的SOAP协议

    [前五篇]系列文章传送门: 网络协议 15 - P2P 协议:小种子大学问 网络协议 16 - DNS 协议:网络世界的地址簿 网络协议 17 - HTTPDNS:私人定制的 DNS 服务 网络协议 ...

  7. 在ASP.NET Web Application中通过SOAP协议调用Bing搜索服务

    本文介绍了如何在ASP.NET Web Application中将Bing搜索作为Web Service来使用,并通过HTTP的SOAP协议在ASP.NET Web Application中调用Bin ...

  8. SOAP协议初级指南 (二)

    XML 作为一个更好的网络数据表达方式(NDR) HTTP是一个相当有用的RPC协议,它提供了IIOP或DCOM在组帧.连接管理以及序列化对象应用等方面大部分功能的支持.( 而且URLs与IORs和O ...

  9. SOAP协议初级指南 (一)

    SOAP(Simple Object Access Protocal) 技术有助于实现大量异构程序和平台之间的互操作性,从而使存在的应用能够被广泛的用户所访问.SOAP是把成熟的基于HTTP的WEB技 ...

随机推荐

  1. nginx 499 错误码

    今天查看nginx的access log 文件,发现类似这种请求: [22/Apr/2014:14:01:12 +0800] "GET / HTTP/1.1" 499 0 &quo ...

  2. jQuery常用操作部分总结

    注意:$(“.xxx”)   类,一定要在前面加上点callback为完成后执行的函数名称隐藏显示:hide()   show()淡入淡出:fadeIn()  fadeOut()  fadetoggl ...

  3. 微信小程序tabBar的一个小坑

    开始接触微信小程序的项目开发时,自己想添加底部导航,按照文档的方法在app.json添加tabBar,结果编译不出,工具台也没错误提示. 尝试在网上搜一下,看到有碰到类似情况的,解决方法是:app.j ...

  4. 安装k8s-1master多node节点

    卸载比较新的18.3版本,安装17.03版本 删除旧版本 sudo yum remove docker \ docker-client \ docker-client-latest \ docker- ...

  5. HP LaserJet M602 更換碳粉盒CE390XC

    HP LaserJet M602 原裝碳粉盒為 CE390A 且容量小不夠用,故更換大號的 CE390XC ,需要將 CE390XC 外面的所有橙色部件去掉(取走上面一條帶2個凸起的遮罩,左側有一個耳 ...

  6. web系统认证与鉴权中的一些问题

    认证鉴权系统的初心: 空间管理: 1.他是谁? 他登陆了没有? 2.他要做什么? 2.1 他要使用什么功能? 他是否有这个功能的权限. 2.2 他要使用这个功能做什么操作? 他是否有这个功能的这个操作 ...

  7. JoinableQueue队列,线程,线程于进程的关系,使用线程,线程的特点,守护线程,线程的互斥锁,死锁问题,递归锁,信号量

    1.JoinableQueue队列 JoinableQueue([maxsize]):这就像是一个Queue对象,但是队列允许项目的使用者通知生成者项目已经被成功处理.通知进程是使用共享的信号和条件变 ...

  8. Y2K Accounting Bug POJ2586

    Description Accounting for Computer Machinists (ACM) has sufferred from the Y2K bug and lost some vi ...

  9. 用maven建立一个工程

    建立java工程 mvn archetype:generate -DgroupId=cn.maxhou.demo -DartifactId=myapp -DarchetypeArtifactId=ma ...

  10. Javascript学习笔记四——操作表单

    Javascript学习笔记 大多网页比如腾讯,百度云之类的需要登陆,用户输入账号密码就可以登陆,那么浏览器是如何获取用户的输入的呢?今天就记录一下操作表单. 操作表单与操作DOM是差不多的,表单本身 ...