最近由于
工作需要,研究了一下REST。
目前REST已经成为了网络社区里的流行名词。那REST又是什么那?
REST - Representational State Transfer, 诞生于Roy Fielding(作为HTTP协议规范的主要制定者之一)的
2000年博士论文
REST的明确
定义。
简单来说REST是一种基于Resource State的Web服务访问架构,目前REST作为网络应用的设计策略已经被广泛使用。目前
Amazon ,
eBay,
Yahoo等都提供了REST的服务接口调用。
REST作为一组构架策略的描述,这个词汇也经常被用来描述一些简单用HTTP传输的XML的而没有使用类似于SOAP接口实现。
REST的设计核心就是抓住了Web成功的要素。REST的特点有:
Client-Server 是一个以pull为基础的交互构架,服务的使用者采用pull方式获取信息
Layered components 这样可以使得所有的中间层透明化,例如代理服务器,缓存服务器,网关等都可以被安插在客户端和资源之间,来提高性能保证安全
Stateless 每一次客户端到服务器端的请求信息完整,并保证请求能够被充分理解。作为一种Stateless的交互,REST可以给我们带来以下的好处是客户端可以变 得非常简单,服务端的扩展性大大加强, 我们可以将一些简单的服务组合成为一个更大的服务。
Cache 为了提高网络相应效率,需要提供可以使用缓存后者不使用缓存的标记
Uniform interface 所有的资源都可以通过一个通用的接口来访问 (例如 HTTP GET, POST, PUT, DELETE)
Named resoureces 系统是由那些能够使用URL来描述的资源所组成。
我们知道HTTP提供了(GET,POST,DELET,这些动作)的描述, 我们可以通过这些方法来实现对特定资源(URI)的增删改查的操作。我们可以声称一个网络应用是RESTful如果我们能够通过HTTP GET请求来获取信息,使用HTTP POST来更新信息。
如何实现RESTful web service。
http://www.xfront.com/REST-Web-Services.html
其它相关资源
http://c2.com/cgi/wiki?RestArchitecturalStyle
http://rest.blueoxen.net/cgi-bin/wiki.pl
REST的教程
http://rest.blueoxen.net/cgi-bin/wiki.pl?BenjaminsRESTTutorial