首页 > 代码库 > REST总结

REST总结

REST是Roy Thomas Fielding博士于2000年在他的博士论文中阐述的一种架构风格和设计原则。REST并非一种协议或者标准,事实上它只是阐述了HTTP协议的设计初衷;现在HTTP在网络上被广泛应用,然而人们却越来越多的把它作为一种传输协议而非应用协议,比如SOAP类型的WebService,在SOAP中,完全把Http协议作为了其消息的载体,而对Http协议中的各种参数(例如编码,错误码等)都置之不顾。

REST的设计概念和准则如下:

  1. 网络上的所有事物都可以被抽象为资源(resource)
  2. 每一个资源都有唯一的资源标识(resource identifier),对资源的操作不会改变这些标识
  3. 所有的操作都是无状态的

如果应用程序或者架构符合REST的设计原则和风格,那么就说它是RESTful的。REST是一个抽象的概念,实现它的技术有很多种,而最广泛也最容易的当属以HTTP为基础的技术了,我们把这种方式叫做REST/HTTP,有时说REST指的就是REST/HTTP。

REST/HTTP web service与SOAP web service的比较

  1. SOAP以类似传统RPC操作的风格来实现SOA软件系统,它是以操作或者活动为核心的,有严格的规范和标准,包括安全,事务等各个方面的内容,同时SOAP强调操作方法和操作对象的分离,有WSDL文件规范和XSD文件分别对其定义;然而,REST是面向资源的,资源和URI是它的核心,只要我们要操作的对象可以抽象为资源即可以使用REST架构风格。
  2. REST Web Service的优势是简单数据操作,无事务处理,开发和调用简单,而SOAP web service有清晰的规范标准定义,能够处理较为复杂的面向活动的服务
  3. REST Web Service使用HTTP的标准方法:GET/PUT/POST/DELETE 来抽象所有 Web 系统的服务能力,SOAP Web Service只是用POST方法并通过定义自己个性化的接口方法来抽象 Web 服务
  4. REST Web Service中不同的资源用不同的URI唯一识别,SOAP Web Service中的URL只是服务的地址而操作被封装在SOAP消息体中。

REST/HTTP的优势

由于采用标准化的 HTTP 操作方法并结合其他的标准化技术,如 URI,HTML,XML 等,极大的提高了系统与系统之间整合的互操作能力,尤其在 Web 应用领域,RESTful Web 服务所表达的这种抽象能力更加贴近 Web 本身的工作方式,也更加自然。以下是它的具体优势

  1. 无状态性(Stateless)
  2. 安全操作与幂指相等特性(Safety /Idempotence)
  3. 安全控制
  4.  缓存
  5. 连接性

总结:

满足REST原则的系统充分利用了HTTP标准,具有简单,易用,扩展型好的特点,是除了类RPC风格的SOAP协议的另一种实现SOA的方式。

REST总结