简单了解soap协议
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协议的更多相关文章
- C#如何使用Soap协议调用WebService?
WebService是什么?它的作用? WebService是一个平台独立.低耦合的.自包含的.基于可编程的可使用xml描述.调用的web应用程序,用于开发分布式的交互式的应用程序. Soap是什么? ...
- soap协议有get方式
今天去面试,被问到了这个问题.一时没想起来.考官的说法是没有 get,使用post 发请求.restful 有get put delete等谓词. 特地查了一下.记在下边. <system.we ...
- 08_使用TCP/IP Monitor监视SOAP协议
[SOAP定义] SOAP 简单对象访问协议,基于http传输xml数据,soap协议体是xml格式.SOAP 是一种网络通信协议SOAP 即Simple Object Access Pr ...
- Java实现SOAP协议 之 HelloWorld
Java实现SOAP协议 之 HelloWorld SOAP是把基于HTTP的WEB技术与XML的灵活性和可扩展性组合在了一起. 准备: 1. 准备一个web server.Tomcat 下载地址 h ...
- 使用TCP/IP Monitor监视Soap协议
什么是soap? soap,简单对象访问协议,基于http传输xml数据,soap协议体是xml格式. SOAP 是一种网络通信协议 SOAP即Simple Object Access Protoco ...
- 网络协议 20 - RPC 协议(上)- 基于XML的SOAP协议
[前五篇]系列文章传送门: 网络协议 15 - P2P 协议:小种子大学问 网络协议 16 - DNS 协议:网络世界的地址簿 网络协议 17 - HTTPDNS:私人定制的 DNS 服务 网络协议 ...
- 在ASP.NET Web Application中通过SOAP协议调用Bing搜索服务
本文介绍了如何在ASP.NET Web Application中将Bing搜索作为Web Service来使用,并通过HTTP的SOAP协议在ASP.NET Web Application中调用Bin ...
- SOAP协议初级指南 (二)
XML 作为一个更好的网络数据表达方式(NDR) HTTP是一个相当有用的RPC协议,它提供了IIOP或DCOM在组帧.连接管理以及序列化对象应用等方面大部分功能的支持.( 而且URLs与IORs和O ...
- SOAP协议初级指南 (一)
SOAP(Simple Object Access Protocal) 技术有助于实现大量异构程序和平台之间的互操作性,从而使存在的应用能够被广泛的用户所访问.SOAP是把成熟的基于HTTP的WEB技 ...
随机推荐
- LC 835. Image Overlap
Two images A and B are given, represented as binary, square matrices of the same size. (A binary ma ...
- Actuator Elasticsearch healthcheck error
1. 相关环境 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- 线程池使用Callable示例【我】
实际工作中可以把下面的代码直接拿过去改改即可 package threadtest; import java.util.ArrayList; import java.util.HashMap; imp ...
- RDD的cache 与 checkpoint 的区别
问题:cache 与 checkpoint 的区别? 关于这个问题,Tathagata Das 有一段回答: There is a significant difference between cac ...
- Linux命令集锦:ansible命令
ansible 命令主要用于批量管理,来实现自动化管理.常用批量操作包括:主机分组管理.实时批量执行命令或脚本.实时批量分发文件或目录.定时同步文件等. 一.安装 ansible yum instal ...
- Linux命令集锦:chmod命令
chmod命令是用来变更文件或目录的权限. 权限范围的表示法如下: u:User,即文件或目录的拥有者: g:Group,即文件或目录的所属群组: o:Other,除了文件或目录拥有者或所属群组之外, ...
- nginx反向代理cookie相关
http://blog.csdn.net/xiansky2015/article/details/51674997 http://www.jianshu.com/p/aeed2a56a3eb
- Java数据结构之TreeMap
一.源码注释 /** * TreeMap基于NavigableMap 的一个红黑树的实现.TreeMap会根据比较器comparator对键值对的key进行比较进行排序,如果没有比较器就是用key的自 ...
- K8S知识点总结
一.K8S介绍: Kubernetes(k8s)是Google开源的容器集群管理系统.在Docker技术的基础上,为容器化的应用提供部署运行.资源调度.服务发现和动态伸缩等一系列完整功能,提高了大规模 ...
- matlab之编写函数m文件计算排列组合Cnm
function y=myfun(n) y=1; for i in 1:n; y=y*(m-i+1)/i; end 给y赋初值 给i遍历 计算每一项的乘积之和 注意:要保存函数的名字为myfun,因为 ...