什么是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风格比较相关推荐

  1. API接口设计之RESTful软件架构风格

    说到API接口设计有的喜欢用Web Service,有的喜欢用WCF,当然也有还在用最原始的ashx,aspx页面的.无论采用什么方式能很好的满足业务需求就ok,但是不同的方式在扩展性.易用性,可维护 ...

  2. RESTful 架构风格概述(图文介绍)

    最近公司有一个项目设计到与其他服务的数据交换,对面提供接口.要求严格遵循RESTful风格.之前虽然有过学习,阅读,但是毕竟不是严格遵守与使用,故不懂才有动力学习,当然不学习也不行.闲话少说,众里寻他 ...

  3. RESTful架构风格

    REST即Representational State Transfer的缩写,可译为"表现层状态转化".REST最大的几个特点为:资源.统一接口.URI和无状态. 资源 所谓&q ...

  4. RestFul通信风格

    我们看一下微服务原则的最后一个设计原则,RestFul的通信规则,我们来看一下这个图,其实我们的服务设计好以后,我们的服务要和客户端去建立一个通信通道,还有包括我们的服务和服务之间,也是需要建立通信通 ...

  5. 搭建基于spring MVC框架 + RESTful架构风格技术总结

    2019独角兽企业重金招聘Python工程师标准>>> 实战篇: 在SpringMVC框架中搭建RESTful架构风格来完成客户端与服务器端的低耦合度.可扩展性.高并发与大数据流量的 ...

  6. 接口对接文档规范2023年最新版(Restful API风格)

    接口对接文档 服务共享 1.设计模式 使用Restful API风格, Restful API的优势是具备更好的易用性,让异构系统更容易集成,且开发执行效率比较高,面向资源要求也比较高. 2.设计约束 ...

  7. 前端基础知识学习 XML JSON RESTFUL SOAP WEBSERVICE

    目录 一.Web Services 应用程序组件 什么是Web Services? 它如何工作? Web services 平台的元素: 二.SOAP 简易对象访问协议 通信协议 什么是 SOAP? ...

  8. python3-开发进阶-RESTful 软件架构风格

    一. 什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为"表征状态转移" ...

  9. python开发项目架构图_我的第一个python web开发框架(8)——项目结构与RESTful接口风格说明...

    PS:再次说明一下,原本不想写的太啰嗦的,可之前那个系列发布后发现,好多朋友都想马上拿到代码立即能上手开发自己的项目,对代码结构.基础常识.分类目录与文件功能结构.常用函数......等等什么都不懂, ...

  10. RESTful开发风格

    面试题:你平时是怎么设计接口的? 基于RESTful风格设计接口,RESTful风格主要体现在资源上,每一个资源都有唯一的URL标识.对于不同的行为,使用对应的http-method操作.对于相同的U ...

最新文章

  1. 数据库笔记1:数据库基本语句
  2. Premature Optimization
  3. [蓝桥杯]算法提高 道路和航路(spfa+deque+快读优化)
  4. 马云卸任CEO演讲全文:明天起生活将是我的工作
  5. java中break和return的区别_java 中return和break的区别
  6. 前端小白该如何学习?前端开发工程师掌握哪些能力
  7. 心爱SEO博客开通了请光临百度
  8. 读书笔记五:TCP/IP详解之RARP逆地址解析协议
  9. 慕课网仿去哪儿项目笔记--(一)-初始化准备
  10. 找不到服务器或应用项目,word中文档时提示“找不到服务器应用程序、源文件或项目”有...-office软件找不到word文档,officewo...
  11. 四大行、三大运营商在列,或有15家公司参与央行数字货币
  12. 智能优化算法(超全)
  13. Jenkins教程(2)插件源与常用插件
  14. Leach协议的实现
  15. win10删除多余账户_win10删除多余账户,win10
  16. HTML中动态图片切换JQuery实现
  17. axios 请求拦截器响应拦截器
  18. node.js 链接 数据库
  19. Serverless 可观测性的过去、现在与未来
  20. 3.《程序猿扯淡系列》约会的艺术--教你如何逆袭

热门文章

  1. Linux上安装rz和sz命令
  2. java,list集合类
  3. C++ 中map容器
  4. Linux硬链接和符号链接(转)
  5. [置顶] ios 360度旋转效果demo
  6. 考研英语作文:环保呼吁信
  7. lua 日期的一些函数
  8. 根据服务端生成的WSDL文件创建客户端支持代码的三种方式
  9. rsa 网站openssl加密解密 使用心得
  10. 使用jQuery Uploadify在ASP.NET 上传附件