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/

REST Service 基础 A further step.的更多相关文章

  1. Service基础使用

    Service基础使用 之前的文章一直介绍Activity的使用,很多知识和用法单一的配合Activity使用,这次将总结Android四大组件之二--Service. 本文将要介绍以下内容: Ser ...

  2. Android Service基础

    Service Service 是一个组件,用来执行长时间的后台操作,不提供用户界面. 另一个应用组件可以启动一个Service,它将持续地在后台运行,即便是用户转移到另一个应用它也不会停止. 另外, ...

  3. C# Windows Service 基础

    Windows Service这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的.所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对Window ...

  4. Web Service基础——规范及三要素

    1. Java中的Web Service规范 Java 中共有三种WebService 规范,分别是JAX-WS(JAX-RPC).JAX-RS.JAXM&SAAJ(废弃). 1.1 JAX- ...

  5. Web Service基础——基础概念

    1. Web Service基本概念 Web Service(Web服务)是一种远程调用技术,他的作用就是从远程系统中获取业务数据.具体来说,Web Service可以让你的网站使用其他网站的资源,比 ...

  6. Android笔记之 Web Service 基础

    一.Web Service是什么? 就是网络服务.依据W3C的定义,WebServices(Web服务)是一个用于支持网络间不同机器互操作的软件系统,它是一种自包括.自描写叙述和模块化的应用程序,它能 ...

  7. xBIM 基础06 将STEP物理文件转换为XML

    系列目录    [已更新最新开发文章,点击查看详细]  一.STEP标准简介 STEP,它是Standard for the Exchange of Product model data的缩写.产品数 ...

  8. Web service基础

    Web service是Web应用程序 平台是XML+http XML是不同平台和不同编程语言之间的语言,用于编解码数据. http是因特网协议 XML是web service的基础 Web serv ...

  9. Android Service 基础

    启动方式 startService(Intent) 这种方式启动的Service可以在后台无限期的运行,与启动它的组件没有关系. bindService 绑定Service.它提供了一种类似C/S结构 ...

随机推荐

  1. java.util.Queue用法

    队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作.进行插入操作的端称为队尾,进行删除操作的端称为队头.队列中没有元素时,称为空队列. 在队列这 ...

  2. TPL异步并行编程之回调

    Task是基于ThreadPool线程池基础上的高度异步多线程编程,如果有一天我希望一个需要长时间运行的Task,在被某些异常终止后还能回调一些代码就可以知道Task终止的原因了吧 是的,且看代码 p ...

  3. 百度地图 javascript相关Bug搜集

    一 在手机里用百度地图js版做webapp   bug集合 1 之前用2.0版本的时候发现只要地图添加了覆盖物,无论数量多少,当地图放大到很小的范围时候,会卡死 1.1 当时处理办法:将版本降低至1. ...

  4. 程序猿的量化交易之路(26)--Cointrader之Listing挂牌实体(13)

    转载须注明出处:http://blog.csdn.net/minimicall? viewmode=contents,http://cloudtrade.top Listing:挂牌. 比方某仅仅股票 ...

  5. 运用mapreduce计算tf-idf

    问题描写叙述:给定一个大文件,文件里的内容每一行为:文档名,文档内容. input 文档名1,word1 Word2 ....... 文档名2,word1 Word2 ....... output w ...

  6. 2013 吉林通化邀请赛 D-City 离线型的并查集

    题意:给定n个点和m条边,问你拆掉前i条边后,整个图的连同城市的数量. i从1到m. 思路:计算连通的城市,很容易想到并查集,但是题目里是拆边,所以我们可以反向去做. 存下拆边的信息,从后往前建边. ...

  7. ZOJ 3794 Greedy Driver

    两次SPFA 第一关找:从1没有出发点到另一个点的多少是留给油箱 把边反过来再找一遍:重每一个点到终点最少须要多少油 Greedy Driver Time Limit: 2 Seconds       ...

  8. VSTO之旅系列(四):创建Word解决方案

    原文:VSTO之旅系列(四):创建Word解决方案 本专题概要 引言 Word对象模型 创建Word外接程序 小结 一.引言 在上一个专题中主要为大家介绍如何自定义我们的Excel 界面的,然而在这个 ...

  9. BZOJ 3112 Zjoi2013 防守战线 单纯形

    题目大意: 单纯形*2.. . #include <cmath> #include <cstdio> #include <cstring> #include < ...

  10. 你真的了解mysql的varchar字段的长度有多少吗?

    今天在设计系统字段的时候, 发现自己对varchar还不够了解.我设了一个字段.类型为VARCHER,然后我就往里面测试性了写了东西.发现没有多少就满了.我觉得奇怪,5.5版本以上的MYSQL不是有6 ...