博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SOAP 与 REST
阅读量:6566 次
发布时间:2019-06-24

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

  hot3.png

SOAP(原为Simple Object Access Protocol的,即简单对象访问协议)是交换数据的一种协议规范。目前SOAP 1.1版是业界共同的标准,属于第二代的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使用因特网应用层协议作为其传输协议。以及协议都可以用来传输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

REST

A  is a development in web services where emphasis has been moving to simpler  (REST) based communications. RESTful APIs do not require XML-based web service protocols ( and WSDL) to support their interfaces.

如果一个URL返回的不是HTML,而是机器能直接解析的数据,这个URL就可以看成是一个Web API。REST就是一种设计API的模式。最常用的数据格式是JSON。由于JSON能直接被JavaScript读取。

REST请求和普通的HTTP请求有几个特殊的地方:

REST请求仍然是标准的HTTP请求,但是,除了GET请求外,POST、PUT等请求的body是JSON数据格式,请求的Content-Type为application/json;

REST响应返回的结果是JSON数据格式,因此,响应的Content-Type也是application/json。

 

 

转载于:https://my.oschina.net/lemos/blog/820518

你可能感兴趣的文章
FreeBSD IPFW 防火墙的安装和设置
查看>>
Linux分区和文件系统 ⑥
查看>>
ClipDrawable--水漫起来的效果
查看>>
osd内的pg数量
查看>>
shell脚本与mysql交互方法汇总
查看>>
Cron 表达式详解和案例
查看>>
Android - 软件自动更新的实现
查看>>
oracle数据库远程不落地导入本地数据库
查看>>
Unix调试的瑞士军刀:lsof(转)
查看>>
dns相关内容
查看>>
JavaScript骚操作
查看>>
MySQL的主从复制与读写分离原理
查看>>
luaCPU性能测试
查看>>
mysql优化
查看>>
【批处理】for循环中产生不同的随机数
查看>>
Gradle -help
查看>>
/etc/security/limits.conf
查看>>
js 框架
查看>>
android 实现ListView中添加RaidoButton单选
查看>>
Oracle数据库:启动操作
查看>>