首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

作甚REST

2012-09-29 
何为REST?学习Web Service时,不免会经常遇到REST这个术语。他的含义是:Representational State Transfer(表

何为REST?

学习Web Service时,不免会经常遇到REST这个术语。他的含义是:Representational State Transfer(表述性状态转移)。其实,简而言之,REST就是一种解决方案,一种思想。其主要目的在于,提高系统的可伸缩性和降低系统开发的复杂度,同时简化基于Web Service服务的架构开发。

?

在REST中一个很重要的概念是:资源!然而在WEB中一个资源的含义,并非指“一本书”,“一张纸”这样的具体数据。这里的“资源”,等于“数据+表述”。什么意思?比如说:“家里有6个孩子”和"比我大的有4个孩子"。这两句话中的数据有重叠的部分(我家里比我大的孩子),但是他们的表述是不同的。这就可以看出这里的资源,是数据和表述的结合体。

?

REST之所以可以简化开发工作,是因为他规定了一些约束:

?

@ 网络上的所有事物都被抽象为资源(Resource);

@ 每个资源都要有一个唯一的标识符(Resource Identifier)。(URI)

@ 只可以通过通用的连接器接口(Generic Connector Interface)对资源进行操作。(HTTP)

@ 对资源的各种操作不会改变资源的标识符。

@ 所有的操作都是无状态的。

?

使用REST应该注意的问题:

# REST的无状态性,虽然提高了系统的可伸缩性,但增加了客户端和服务器端的通信量,可以采用客户端缓存机制来提供通信的效率,但这样做,可能会带来客户端和服务器端的一致性和安全性等问题。

# REST关键所在:怎样抽象资源?

# REST中服务器端只提供Resource,客户端需要根据服务器端返回的Data和Representation,自己解决解析和显示的问题。

?

REST可使用的一些框架(遵循JAX-RS标准):

?

Jersey,CXF,RESTEasy,Restlet

?

?

?

?

?

?

热点排行