学习了一段时间的网络协议 , 相信大家已经对一些常规的网络协议有所了解了。那么这里我们主要介绍一下SOAP协议的内容。SOAP协议:简单对象访问协议(SOAP:Simple Object Access Protocol),简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息. SOAP协议可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME).它还支持从消息系统到远程过程调用(RPC)等大量的应用程序.

SOAP 包括三个部分:

SOAP 封装:它定义了一个框架 , 该框架描述了消息中的内容是什么,谁应当处理它以及它是可选的还是必须的.

SOAP 编码规则:它定义了一种序列化的机制,用于交换应用程序所定义的数据类型的实例.

SOAP RPC 表示:它定义了用于表示远程过程调用和应答的协定.(RPC:英文原义:Remote Procedure Call Protocol

中文释义:(RFC-1831)远程过程调用协议)

SOAP 消息基本上是从发送端到接收端的单向传输,但它们常常结合起来执行类似于请求 / 应答的模式.所有的 SOAP 消息都使用 XML 编码.一条 SOAP 消息就是一个包含有一个必需的 SOAP 的封装包,一个可选的 SOAP 标头和一个必需的 SOAP 体块的 XML 文档.把 SOAP 绑定到 HTTP 提供了同时利用 SOAP 的样式和分散的灵活性的特点以及 HTTP 的丰富的特征库的优点.在 HTTP 上传送 SOAP 并不是说 SOAP 会覆盖现有的 HTTP 语义,而是 HTTP 上的 SOAP 语义会自然的映射到 HTTP 语义.在使用 HTTP 作为协议绑定的场合中, RPC 请求映射到 HTTP 请求上,而 RPC 应答映射到 HTTP 应答.然而,在 RPC 上使用 SOAP 并不仅限于 HTTP 协议绑定.

SOAP也可以绑定到TCP和UDP协议上.

协议结构

SOAP协议消息格式:

SOAP 标头

 
  1. < SOAP-ENV: Envelope
  2. Attributes >
  3. < SOAP-ENV:Body
  4. Attributes
  5. </ SOAP-ENV:Body >
  6. </ SOAP-ENV:Envelope >

目前主要在web服务中运用.

SOAP Action WEB编码中常见,协议开始起始意思,常见于编码启始句.

语法规则

这里是一些重要的语法规则:

SOAP 消息必须用 XML 来编码

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

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

SOAP 消息不能包含 DTD 引用

SOAP 消息不能包含 XML 处理指令

SOAP 消息的基本结构

 
  1. <? xml version = "1.0" ?>
  2. < soap:Envelope
  3. xmlns:soap = "http://www.w3.org/2001/12/soap-envelope"
  4. soap:encodingStyle = "http://www.w3.org/2001/12/soap-encoding" >
  5. < soap:Header >
  6. ...
  7. ...
  8. </ soap:Header >
  9. < soap:Body >
  10. ...
  11. ...
  12. < soap:Fault >
  13. ...
  14. ...
  15. </ soap:Fault >
  16. </ soap:Body >
  17. </ soap:Envelope >

现在采用webservice+soap的比较火,原因:

WebService可用基于XML的SOAP来表示数据和调用请求,并且通过HTTP协议来传输这些XML格式的数据,因为此时的调用请求和回应 消息是可以穿过防火墙的,一般来说都只有80端口是开放的.具资料显示在WebService之前实现的一些所谓的分布式组件技术是采用二进制来表示的, 还需要通过特殊的端口来通信.明显当遇到防火墙时就会失败.webservice最大优点就是实现异构平台间的互通.这也是使用WebService的主 要原因之一.这样任何两个应用程序,只要他们能读写XML,就能相互通信.

1.webservice部署比较方便(它直接通过网络引用,只要服务器端抛出的接口不变,客户端是没法知道的,因为所以的内部计算都是在服务器运 行的)DLL,部署,更新需要每个应用了这个DLL的应用程序都作相应的引用更新...而如果用了Ws,则不用,因为它通过网络部署,通过网络引用,基本 上,ws发生了变化,客户端没有影响,甚至不知道有这样的变化...

2.web service的编写,跟普通的class差不多.

3.当然还有一个好处:平台无关.C#,Java写的ws可以相互调用.

4.做分布式系统.比如 说把数据访问部分写成ws,发布在另外一台server上... ...

Webservice与WCF的区别:

webservice 集成了 WEBservice,.NET Remoting,enterprise Service,WSE,MSMQ等技术的整合。WCF具有WEBservice的优点和弥补了他的缺点.但是为了加强WEB service 的安全性的规范性,微软使用WCF来绑定一些规范,让VS生成代码更加迅速准确.比如 <Head>的协议节点的生成,加密,(这块内容还有很多,但是我只接触到这两点),在VS2008中,WCF就是通过接口来实现服务的.和 VS2005下实现WEB SerVCie有点不一样.微软有意将WCF做称一个强大的解决方案整合.特别是它的强大的配置性.

对于SOAP协议的全面介绍相关推荐

  1. SOAP协议(二):Apache SOAP介绍

    (仙人掌工作室 2001年09月21日 14:53) width="360" scrolling="no" height="300" fra ...

  2. 6 使用soap客户端_网络协议 20 - RPC 协议(上)- 基于XML的SOAP协议

    上一节我们了解 RPC 的经典模型和设计要点,并用最早期的 ONC RPC 为例子,详述了具体的实现.而时代在进步,ONC RPC 逐渐因为各种问题被替代,SOAP 协议就是替代者之一. ONC RP ...

  3. 详解基于J2ME平台下SOAP协议的应用

    J2ME作为嵌入式系统应用平台得到了迅速的发展,JAVA语言固有的平台无关性使得基于J2ME平台的嵌入式应用系统具有广阔的前景.受限于嵌入式设备及消费类电器硬件条件的限制,J2ME平台提供的功能有限, ...

  4. php 基于soap什么协议,网络协议 20 - RPC 协议(上)- 基于XML的SOAP协议

    [前五篇]系列文章传送门: 上一节我们了解 RPC 的经典模型和设计要点,并用最早期的 ONC RPC 为例子,详述了具体的实现.而时代在进步,ONC RPC 逐渐因为各种问题被替代,SOAP 协议就 ...

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

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

  6. soap协议_Go和SOAP

    在REST和RPC大行其道的今天,支持SOAP(简答对象访问协议)作为Web服务消息交换协议的情况是越来越少了.但在一些遗留系统中,尤其是采用微软技术栈的服务系统中,SOAP依然占有一席之地,比如在一 ...

  7. Android与服务器端数据交互(基于SOAP协议整合android+webservice)

    转自:http://www.cnblogs.com/zhangdongzi/archive/2011/04/19/2020688.html 上一节中我们通过http协议,采用HttpClient向服务 ...

  8. java soap协议头_自己调用webservice方法总结(带请求头SoapHeader)

    调用webservice总结:1.加入第三方的jar包 Ksoap2-android-XXX2.访问响应的webservice的网站,查看响应的信息,得到nameSpace,methodName,ur ...

  9. jmeter web服务器协议,【JMeter4.0学习(三)】之SoapUI创建WebService接口模拟服务端以及JMeter测试SOAP协议性能测试脚本开发(示例代码)...

    目录: [阐述]:首先应该遇到了一个共同的问题,JMeter3.2之后就没有WebService(SOAP) Request,后来经过查询网上资料得知其实可以用HTTP请求来操作,结果是一样的. [步 ...

最新文章

  1. 这么流行的ZooKeeper,原来是这样设计的!
  2. 比特率 波特率 数据传输速率 区别(转)
  3. Intellij IDEA eclipse项目导入
  4. Leetcode 292. Nim 游戏 解题思路及C++实现
  5. notepad++ 远程连接阿里云服务器
  6. JavaScript是如何工作的:Web推送通知的机制
  7. 用会声会影制作手链的展示视频
  8. 工具-管理工具资源集合
  9. 国网四川电力应用大数据服务经济社会发展
  10. vb科学计算机ppt,《计算机级VB教程》PPT课件.ppt
  11. SPSS异方差检验的实现
  12. idea设置前进、后退快捷键
  13. 稀疏矩阵存储格式总结+存储效率对比:COO,CSR,DIA,ELL,HYB
  14. ————博客永久废止————转到http://1su.net/nsB
  15. GAN之父离开苹果重返谷歌,SpaceX最新估值达1250亿美元,美国官方公布UFO进展,今日更多大新闻在此...
  16. 拓扑学+计算机,拓扑学是什么
  17. 关于语音会议自动转文字系统的想法
  18. ghost网络克隆功能实现【批量】计算机操作【系统的安装】,Ghost怎么网络克隆备份还原系统GhostCast教程...
  19. 应用“真心话大冒险”项目总结
  20. blog微服务架构代码_DDD+微服务大型案例:Uber如何从复杂的RPC微服务转向面向业务领域的微服务架构DOMA? -优步工程博客...

热门文章

  1. Apache POI 合并单元格
  2. 计算机应用基础试题库,2017年计算机应用基础模拟试题「题库」
  3. AIS(自动识别系统)介绍
  4. Simulink自动代码生成:如何标准化的建模?以MAB,MISRA C 2012建模规范为例
  5. 休闲娱乐之和成熟的男生谈恋爱
  6. JAVA对象布局之对象头(Object Header)
  7. android设备压差表怎么校准,MY-DJ101
  8. VTS manifest xml
  9. jsp中c标签的详细使用
  10. 一键备份Android系统(软件)