zoukankan      html  css  js  c++  java
  • REST Service 基础 A further step.

    1. REST Service虽然实现简单, 但也功能丰富, 可以用来实现各种基于Web的服务(service)。

    2. REST Service的一些特点:

       1)平台无关

       2) 语言无关

       3)基于HTTP标准

       4)即使有防火墙存在的情况下也可以方便使用。


    3. REST 没有提供内建的Security features, encryption, session management, QoS guarantees, etc. 

    但是在提供REST Service的时候,可以使用基于Http之上的安全措施:

    OAuth

    HTTPS

    etc.

    4. REST和SOAP相比的简单之处:

    SOAP的请求信息

    <?xml version="1.0"?>
    <soap:Envelope
    xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
    soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
     <soap:body pb="http://www.acme.com/phonebook">
      <pb:GetUserDetails>
       <pb:UserID>12345</pb:UserID>
      </pb:GetUserDetails>
     </soap:Body>
    </soap:Envelope>

    通常包含在Envelope之中,这需要我们先解析Envelop中的信息。

    对于SOAP只需要

    http://www.acme.com/phonebook/UserDetails/12345

    REST的一些优势

    • It's easy to see why Web Services are often used with libraries that create the SOAP/HTTP request and send it over, and then parse the SOAP response.
    • With REST, a simple network connection is all you need. You can even test the API directly, using your browser

    一个形象的例子:

    SOAP就好像是邮递信件需要信封将信件wrap起来。

    而是用REST就好像是一个明信片(每次请求是用更少的带宽,因为减少了信封(SOAP的包装信息)), 当然在安全性上可以使用任何加密手段保证安全。


    5. 复杂请求, 前文说到只读信息推荐使用GET请求, 但是对于复杂请求,需要很多参数和信息的情况下 (HTTP协议本身未指定任何对URL长度要求。它只是建议不要超过255个字符), 这种情况下可以使用POST请求来得到资源的Representation。


    6. 不同于SOAP, REST的相应不局限在XML, 可以使用JSON, CSV等其他格式。可以针对不同情况利用这些文档的优势。

    XML更易于扩展。

    CSV具有更好的压缩性。

    JSON更易于Java Script处理。

    HTML推荐作为REST的返回格式,出了在需要Human-Readable的情况下, 大部分情况返回信息是用程序来处理的。


    7. REST的核心架构:

    资源(Resource)

    A web of resources(返回信息不能过大, 必要时使用分页paging),之前做过的一个项目就发生过返回信息过大而time out的情况。

    无连接状态(No Connection state)

    必要时缓存 (使用 Http cache-control Header)

    使用代理服务改善性能。


    8. REST设计纲领:

    1)不要使用物理URL,例如指向具体的问题文件,https://csdn.net/profile.xml

    2) 返回信息不能过大(分页)

    3) 完善返回信息文档(例如返回信息xml的DTD

    4) 返回列表具体resource的URI, https://csdn.net/users

    返回所有用户信息, 例如

    <users>

    <user>https://csdn.net/users/onehao </user>

    .....

    </users>

    5) GET请求不能引起资源(Resource)状态变化。


    9. ROA vs.SOA, REST vs. SOAP

    1) 基于SOAP based的SOA相对于ROA可能有更多成熟的工具的支持。(这种情况可能随着时间的推移而改变)

    2) ROA更易于实现

    3) ROA具有更好的性能, -- 更好的Cache支持, 更轻量级的Request和Response。


    上一篇: REST Service 基础



    Reference:

    http://blog.csdn.net/onehao/article/details/9269819

    http://rest.elkstein.org/

  • 相关阅读:
    getchar,putchar函数
    强制类型转换和整数常量的数据类型及转换
    c语言整型的隐式数据 类型转换
    c语言整型数据输出格式声明
    c语言整型变量的储存空间,以及所表示的整数范围
    c语言常量
    c语言求回文数
    Android4.0源码目录结构详解
    MTK Android源代码目录
    Comparator 和 Comparable
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3181899.html
Copyright © 2011-2022 走看看