博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Web服务实现方案二:SOAP简介
阅读量:2352 次
发布时间:2019-05-10

本文共 1883 字,大约阅读时间需要 6 分钟。

 

参考:https://zh.wikipedia.org/wiki/SOAP

 

SOAP(原为Simple Object Access Protocol的,即简单对象访问协议)是交换数据的一种协议规范,使用在计算机网络(web service)中,交换带结构信息。SOAP为了简化网页服务器(Web Server)从数据库中提取数据时,节省去格式化页面时间,以及不同应用程序之间按照通信协议,遵从格式执行资料互换,使其抽象于语言实现、平台和硬件。此标准由、、和在1998年共同提出,并得到IBM,莲花(Lotus),康柏(Compaq)等公司的支持,于2000年提交给(;W3C),目前SOAP 1.1版是业界共同的标准,属于第二代的XML协定(第一代具主要代表性的技术为XML-RPC以及WDDX)。

用一个简单的例子来说明SOAP使用过程,一个SOAP消息可以发送到一个具有Web Service功能的Web站点,例如,一个含有房价信息的数据库,消息的参数中标明这是一个查询消息,此站点将返回一个XML格式的信息,其中包含了查询结果(价格,位置,特点,或者其他信息)。由于数据是用一种标准化的可分析的结构来传递的,所以可以直接被第三方站点所利用。

 

目录

 
 [] 

 

相关定义

  • SOAP封装(envelop),它定义了一个框架,描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们;
  • SOAP编码规则(encoding rules),它定义了一种序列化的机制,用于表示应用程序需要使用的数据类型的实例;
  • SOAP RPC表示(RPC representation),它定义了一个协定,用于表示远程过程调用和应答;
  • SOAP绑定(binding),它定义了SOAP使用哪种协议交换信息。使用HTTP/TCP/UDP协议都可以。

把SOAP绑定到HTTP提供了同时利用SOAP的样式和分散的灵活性的特点以及HTTP的丰富的特征库的优点。在HTTP上传送SOAP并不是说SOAP会覆盖现有的HTTP语义,而是HTTP上的SOAP语义会自然的映射到HTTP语义。在使用HTTP作为协议绑定的场合中,RPC请求映射到HTTP请求上,而RPC应答映射到HTTP应答。然而,在RPC上使用SOAP并不仅限于HTTP协议绑定。

历史

 

SOAP曾经代表“Simple Object Access Protocol”,但是这种缩写已经在标准的1.2版后被废止了。1.2版在2003年6月24日成为的推荐版本。这种缩写容易与——Service-oriented architecture产生歧义,虽然它们之间存在非常大的差异。

SOAP由Dave Winer, Don Box,Bob Atkinson, Mohsen Al-Ghosein于1998年设计,当时只作为一种对象访问协议。现在,由的维护。

传输方式

SOAP使用因特网应用层协议作为其传输协议。以及协议都可以用来传输SOAP消息,但是由于HTTP在如今的因特网结构中工作得很好,特别是在网络防火墙下仍然正常工作,所以被广泛采纳。SOAP亦可以在上传输。

SOAP的消息格式采用。

语法规则

  • SOAP消息必须用XML来编码
  • SOAP消息必须使用SOAP Envelope命名空间
  • SOAP消息必须使用SOAP Encoding命名空间
  • SOAP消息不能包含DTD引用
  • SOAP消息不能包含XML处理指令

SOAP消息实例

请求

classifieds

回应

http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
http://localhost:8080/axis2/services/MyService
ECE5B3F187F29D28BC11433905662036
classifieds

 

转载地址:http://peevb.baihongyu.com/

你可能感兴趣的文章
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
查看>>
Centos 6.x 安装配置MySQL
查看>>
-source 1.5 中不支持 diamond 运算 请使用 -source 7 或更高版本以启用
查看>>
jar包读取资源文件报错:找不到资源文件(No such file or directory)
查看>>
超简单:Linux安装rar/unrar工具与解压到目录示例
查看>>
Eclipse创建Maven Java8 Web项目,并直接部署Tomcat
查看>>
RedHad 7.x服务器操作记录
查看>>
BindException: Cannot assign requested address (Bind failed)解决办法
查看>>
Centos7:Docker安装Gitlab
查看>>
Kafka日志配置
查看>>
logstash 6.x 收集syslog日志
查看>>
Apche Kylin启动报错:UnknownHostException: node1:2181: invalid IPv6 address
查看>>
Apache Kylin 2.3 构建Cube失败
查看>>
Apache Kylin 2.3 样例分析
查看>>
Apache Kylin 2.3 JDBC Java API 示例
查看>>
An internal error occurred during: "Initializing Java Tooling". java.lang.NullPointerException
查看>>
ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
查看>>
IntelliJ IDEA 2018 基本配置
查看>>
Spring+Mybatis+多数据源(MySQL+Oracle)
查看>>
Mybatis读取Oracle数据库Blob字段,输出原文件
查看>>