博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(转载)三种主流的WebService实现方案(REST/SOAP/XML-RPC)简述及比较
阅读量:7254 次
发布时间:2019-06-29

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

  目前知道的三种主流的Web服务实现方案为:

  REST:表象化状态转变 (软件架构风格)
  SOAP:简单对象访问协议 
  XML-RPC:远程过程调用协议 

简单介绍:

  REST:表征状态转移(Representational State Transfer),采用Web 服务使用标准的 HTTP 方法 (GET/PUT/POST/DELETE) 将所有 Web 系统的服务抽象为资源,REST从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表征。Http协议所抽象的get,post,put,delete就好比数据库中最基本的增删改查,而互联网上的各种资源就好比数据库中的记录(可能这么比喻不是很好),对于各种资源的操作最后总是能抽象成为这四种基本操作,在定义了定位资源的规则以后,对于资源的操作通过标准的Http协议就可以实现,开发者也会受益于这种轻量级的协议。REST是一种软件架构风格而非协议也非规范,是一种针对网络应用的开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

 

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

  XML-RPC:一个远程过程调用(remote procedure call,RPC)的分布式计算协议,通过XML将调用函数封装,并使用HTTP协议作为传送机制。后来在新的功能不断被引入下,这个标准慢慢演变成为今日的SOAP协定。XML-RPC协定是已登记的专利项目。XML-RPC透过向装置了这个协定的服务器发出HTTP请求。发出请求的用户端一般都是需要向远端系统要求呼叫的软件。

 

三种方案的简单比较

  XML-RPC已慢慢的被SOAP所取代,现在很少采用了,但它还是有版权的,我在此就不作多介绍

  成熟度上:SOAP在成熟度上优于REST

  效率和易用性上:REST更胜一筹

  安全性上:SOAP安全性高于REST,因为REST更关注的是效率和性能问题

  总体上,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现。例如,Amazon.com提供接近REST风格的Web服务进行图书查找;雅虎提供的Web服务也是REST风格的。REST对于资源型服务接口来说很合适,同时特别适合对于效率要求很高,但是对于安全要求不高的场景。而SOAP的成熟性可以给需要提供给多开发语言的,对于安全性要求较高的接口设计带来便利。所以我觉得纯粹说什么设计模式将会占据主导地位没有什么意义,关键还是看应用场景,正是那句老话:适合的才是最好的

  同时很重要一点就是不要扭曲了REST现在很多网站都跟风去开发REST风格的接口,其实都是在学其形,不知其心,最后弄得不伦不类,性能上不去,安全又保证不了,徒有一个看似象摸象样的皮囊。

转载于:https://www.cnblogs.com/tingqianzhu/p/8665055.html

你可能感兴趣的文章
解决iframe重定向让父级页面跳转
查看>>
poj2926
查看>>
poj1135
查看>>
[开源]KJFramework.Message 智能二进制消息框架 -- 对于数组的极致性优化
查看>>
测试工程师应该具备的责任心
查看>>
接口自动化-自动化测试初介
查看>>
平滑滤波
查看>>
第八章 self sizing cell
查看>>
Linux中Nginx中添加自签证书TLS
查看>>
DFS ZOJ 1002/HDOJ 1045 Fire Net
查看>>
MyEclipse快捷键大全【转】
查看>>
DAY02 - 数据类型: 集合
查看>>
BZOJ2458:[BJOI2011]最小三角形——题解
查看>>
BZOJ4946 & 洛谷3826 & UOJ318:[NOI2017]蔬菜——题解
查看>>
10. ZooKeeper之搭建伪集群模式。
查看>>
Easyui Datagrid 如何实现后台交互显示用户数据列表
查看>>
模块登录页代码
查看>>
CCF-CSP 201709-3 JSON查询 题解
查看>>
获取当前路径 ${pageContext.request.contextPath}
查看>>
开博始点,凡程子来了
查看>>