SOAP和REST
2012-03-04 17:49
183 查看
Soap和Rest -转载
http://blog.csdn.net/andyxhua/archive/2008/03/24/2212562.aspx
记录下来,证明自己度过
一直想比较一下这两种风格,却不知如何落笔,最终写成了如下的FAQ形式。
什么是SOAP?
简单对象访问协议,基于XML,是一种应用协议,可以跨多种传输协议来传递消息(比如HTTP、SMTP),Soap是针对RPC的解决方案。
Soap的初衷是作为一种轻量级解决方案出现的,采用xml格式定义过程调用和返回,一个Soap消息就是一个特定格式和内容的XML文档。
什么是Restful web service?
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/archive/2008/03/24/2212562.aspx
记录下来,证明自己度过
一直想比较一下这两种风格,却不知如何落笔,最终写成了如下的FAQ形式。
什么是SOAP?
简单对象访问协议,基于XML,是一种应用协议,可以跨多种传输协议来传递消息(比如HTTP、SMTP),Soap是针对RPC的解决方案。
Soap的初衷是作为一种轻量级解决方案出现的,采用xml格式定义过程调用和返回,一个Soap消息就是一个特定格式和内容的XML文档。
什么是Restful web service?
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。
相关文章推荐
- Webservice中的SOAP和REST方式比较
- REST Vs SOAP,Soap 和 Rest 的区别
- SOAP Web 服务和REST Web 服务
- WSDL/WebService/SOAP/REST/AXIS/CXF 开放式服务
- Webservice中的SOAP和REST方式比较
- web服务编程 REST与SOAP对比
- WSO2 ——(6)开发几种services的方法:SOAP与REST
- REST的架构 SOAP 架构
- WebService的两种方式SOAP和REST比较 (转)
- REST WebService与SOAP WebService的比较
- Simple explanation about SOAP and REST
- REST WebService与SOAPWebService的比较
- Web 服务编程,REST 与 SOAP
- Web 服务编程,REST 与 SOAP
- PRC、RMI、SOAP、REST等的区别与联系
- Web 服务编程,REST 与 SOAP
- REST, SOAP/WS-* and WCF概览
- REST WebService与SOAP WebService的比较
- Web 服务编程,REST 与 SOAP 为什么选择 REST
- Web 服务编程,REST 与 SOAP