REST与SOAP

作者: 短暂瞬间 | 来源:发表于2018-11-21 23:17 被阅读16次

    第63篇

    最近遇到REST与SOAP的讨论,对于其中的具体含义不理解,于是找相关的资料了解一下。

    1、什么是REST

    REST:Representational State Transfer。『表现层状态转换』,是一种互联架构风格,是由Roy Thomas Fielding于2000年提出,兼容于这种风格(简称REST或RESTful)的网络服务可以称为 RESTful web service。
    RESTful web service允许客户端使用统一且预定义的无状态操作方法来访问和操作Web资源的表现形式。

    REST架构风格的特点

    • Client–server architecture 客户端-服务器分离
      请求由客户端单方面发起;用户界面和数据存储的分开可以提高界面的跨平台可移植性;分离架构更容易扩展,并且服务的部件可独立发展和升级。
    • Statelessness 无状态性
      客户端与服务器的会话状态全部由客户端负责,各请求之间不存在相互的状态依赖。
    • Cacheability 可缓存
      服务端的响应内容可以缓存,从而减少客户端和服务端的数据交互,进一步提高性能
    • Layered system 分层
      客户端无法判断是否直接连到了服务器还是通过代理连接的,所以中间层可以使用负载均衡或者提供共享缓存来提供可伸缩性,也可以用来部署安全策略。
    • Uniform interface 统一接口
      是RESTful系统设计的基础。简化并解耦了服务端架构,使得每个部件都可以独立发展升级。

    2、什么人是SOAP

    SOAP:Simple Object Access Protocol。『简单对象访问协议』 [1] ,是一种交换结构化数据的协议规范,由W3C制定,目前推荐版本是SOAP 1.2,这种协议使用XML定义其消息格式,并通过HTTP/SMTP进行消息传输。

    3、REST与SOAP对比

    风格VS协议

    REST是一种思想,一种设计风格,而SAOP是一种协议。

    标准HTTP方法 VS 自定义接口方法

    RESTful Web 服务使用标准的 HTTP 方法 (GET/PUT/POST/DELETE) 来抽象所有 Web 系统的服务能力,SOAP 应用都通过定义自己个性化的接口方法来抽象 Web 服务。

    可复用HTTP缓存 VS 无法轻易缓存

    REST 的应用可以充分地挖掘 HTTP 协议对缓存支持的能力,而SOAP因为无法查看SOAP请求的内容从而无法轻易实现缓存支持。

    以资源为中心 VS 以操作为中心

    RESTful Web服务是以资源为中心的,以URL定位所有可访问目标,对每个资源的操作都是标准化的HTTP方法,而SOAP的Web服务以操作为核心,每个操作的输入输出都通过XML文件实现。

    3、RESTful Web服务与 SOAP Web服务的区别

    RESTful架构
    SOAP架构

    通过上面两张图可以明显看出两种Web服务的区别,比如HTTP方法的区别、响应的内容、资源的URL地址、服务端数据的存储方式。

    4、参考文章和资料

    Representational state transfer 维基百科
    SOAP 维基百科
    Web 服务编程,REST 与 SOAP
    WebService的两种方式SOAP和REST比较


    1. SOAP曾经代表“Simple Object Access Protocol”,但这种缩写已经在标准的1.2版后被废止了。1.2版中扩展了定义,SOAP也可以理解为 Service Oriented Architecture Protocol。

    相关文章

      网友评论

        本文标题:REST与SOAP

        本文链接:https://www.haomeiwen.com/subject/oykfqqtx.html