Restful/Soap风格比较
什么是SOAP?
简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。
这里是一些重要的语法规则:
SOAP 消息必须用 XML 来编码
SOAP 消息必须使用 SOAP Envelope 命名空间
SOAP 消息必须使用 SOAP Encoding 命名空间
SOAP 消息不能包含 DTD 引用
SOAP 消息不能包含 XML 处理指令
Soap的初衷是作为一种轻量级解决方案出现的,采用xml格式定义过程调用和返回,一个Soap消息就是一个特定格式和内容的XML文档。
什么是RESTful?
Rest是针对Web提出的一种架构风格,Restful web service本质上就是Web,任意一个URL地址,一个HTTP网页都可以称作是Restful web service。Rest把网络上的所有事物抽象为资源,把对资源的操作抽象为CRUD,对应HTTP的PUT,Get,Post,Delete。注意此处的资源不是静态的数据,而是数据加上状态,是随时间变化的,每个资源有一个唯一的标识,URL。
Rest提出了一些设计概念和准则:
1、网络上的所有事物都被抽象为资源(resource);
2、每个资源有一个唯一的资源标识(resource identifier);
3、通过通用的连接器接口(generic connector interface)对资源进行操作;
4、 对资源的各种操作不会改变资源标识;
5、所有的操作都是无状态的(stateless)。
什么是架构风格?
来自Roy Thomas Fielding博士的定义:
一种架构风格是一组协作的架构约束,这些约束限制了架构元素的角色和功能,以及在任何一个遵循该风格的架构中允许存在的元素之间的关系。我觉得可以这么来理解:
架构风格是接口
如果说架构是一个对象, 那么架构风格就好比是一组接口,一个特定的架构可能实现了多种架构风格,一种架构风格也可能是继承了多个基本架构风格的混合风格。
架构风格是模式
存在一组基本的架构风格,每个基本风格适用于特定的设计场景,设计师可以根据具体的应用需求进行取舍,对基本风格进行取舍、组合,确定适用于具体的需求的架构设计。而实际的软件架构就是架构设计的具体实现。
Soap是Rest风格的一种实现吗?
当然不是。
1、Soap也可以看作是一种风格,面对的应用需求是RPC,而Rest面对的应用需求是分布式超媒体系统(Web)。
2、Rest架构风格更强调数据,请求和响应消息都是数据的封装。而Soap风格更强调接口,Soap消息封装的是过程调用。REST是面向资源的,而Soap是面向接口的。
3、REST架构下,HTTP是承载协议,也是应用协议,而Soap架构下,HTTP只是承载协议,Soap才是应用协议。
什么时候用Soap?什么时候用REST?
1、过程调用用soap。如果服务是作为一种功能提供,客户端调用服务是为了执行一个功能,用Soap,比如常见的认证授权。而数据服务用REST。
2、可以定义清晰明了的正式接口的情况下,用Soap,比如在企业应用中,系统间的耦合采用面向接口的方式。
3、要更多的考虑非功能需求,比如安全、传输、协作等需求,使用Soap。
4、低带宽,客户端的处理能力受限的场合,比如在PDA,手机上消费服务,用REST。
[转载自:http://blog.csdn.net/andyxhua/article/details/2212562]
转载于:https://www.cnblogs.com/moonlight-fly/p/4126399.html
Restful/Soap风格比较相关推荐
- API接口设计之RESTful软件架构风格
说到API接口设计有的喜欢用Web Service,有的喜欢用WCF,当然也有还在用最原始的ashx,aspx页面的.无论采用什么方式能很好的满足业务需求就ok,但是不同的方式在扩展性.易用性,可维护 ...
- RESTful 架构风格概述(图文介绍)
最近公司有一个项目设计到与其他服务的数据交换,对面提供接口.要求严格遵循RESTful风格.之前虽然有过学习,阅读,但是毕竟不是严格遵守与使用,故不懂才有动力学习,当然不学习也不行.闲话少说,众里寻他 ...
- RESTful架构风格
REST即Representational State Transfer的缩写,可译为"表现层状态转化".REST最大的几个特点为:资源.统一接口.URI和无状态. 资源 所谓&q ...
- RestFul通信风格
我们看一下微服务原则的最后一个设计原则,RestFul的通信规则,我们来看一下这个图,其实我们的服务设计好以后,我们的服务要和客户端去建立一个通信通道,还有包括我们的服务和服务之间,也是需要建立通信通 ...
- 搭建基于spring MVC框架 + RESTful架构风格技术总结
2019独角兽企业重金招聘Python工程师标准>>> 实战篇: 在SpringMVC框架中搭建RESTful架构风格来完成客户端与服务器端的低耦合度.可扩展性.高并发与大数据流量的 ...
- 接口对接文档规范2023年最新版(Restful API风格)
接口对接文档 服务共享 1.设计模式 使用Restful API风格, Restful API的优势是具备更好的易用性,让异构系统更容易集成,且开发执行效率比较高,面向资源要求也比较高. 2.设计约束 ...
- 前端基础知识学习 XML JSON RESTFUL SOAP WEBSERVICE
目录 一.Web Services 应用程序组件 什么是Web Services? 它如何工作? Web services 平台的元素: 二.SOAP 简易对象访问协议 通信协议 什么是 SOAP? ...
- python3-开发进阶-RESTful 软件架构风格
一. 什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为"表征状态转移" ...
- python开发项目架构图_我的第一个python web开发框架(8)——项目结构与RESTful接口风格说明...
PS:再次说明一下,原本不想写的太啰嗦的,可之前那个系列发布后发现,好多朋友都想马上拿到代码立即能上手开发自己的项目,对代码结构.基础常识.分类目录与文件功能结构.常用函数......等等什么都不懂, ...
- RESTful开发风格
面试题:你平时是怎么设计接口的? 基于RESTful风格设计接口,RESTful风格主要体现在资源上,每一个资源都有唯一的URL标识.对于不同的行为,使用对应的http-method操作.对于相同的U ...
最新文章
- 数据库笔记1:数据库基本语句
- Premature Optimization
- [蓝桥杯]算法提高 道路和航路(spfa+deque+快读优化)
- 马云卸任CEO演讲全文:明天起生活将是我的工作
- java中break和return的区别_java 中return和break的区别
- 前端小白该如何学习?前端开发工程师掌握哪些能力
- 心爱SEO博客开通了请光临百度
- 读书笔记五:TCP/IP详解之RARP逆地址解析协议
- 慕课网仿去哪儿项目笔记--(一)-初始化准备
- 找不到服务器或应用项目,word中文档时提示“找不到服务器应用程序、源文件或项目”有...-office软件找不到word文档,officewo...
- 四大行、三大运营商在列,或有15家公司参与央行数字货币
- 智能优化算法(超全)
- Jenkins教程(2)插件源与常用插件
- Leach协议的实现
- win10删除多余账户_win10删除多余账户,win10
- HTML中动态图片切换JQuery实现
- axios 请求拦截器响应拦截器
- node.js 链接 数据库
- Serverless 可观测性的过去、现在与未来
- 3.《程序猿扯淡系列》约会的艺术--教你如何逆袭