Restful概述及优略势比较

一、REST

REST(REpresentational State Transfer)是指从几种基于网络的架构风格衍生出来的一种混合架构风格,它是目前互联网的核心架构风格。基于REST服务(RESTful Service)的Web应用系统设计任务主要包括:识别并设计REST风格的服务,采用面向服务的思想进行REST服务集成。REST风格中的特点是客户端/服务器、无状态、缓存、统一接口、分层系统和按需代码。REST组件通过以一种数据格式转移资源的表述进行通信,可以基于接收者的能力和期待的内容,以及资源的性质动态地选择不同的表述。采用这种方法设计的Web应用系统能够结合REST风格和面向服务思想的优点,近年来受到了广泛的关注。

二、优势

  与传统的Web服务相比,REST服务主要有以下优势:

(1)REST服务基于W3C/IETF的标准与规范(包括HTTP、XML、URI和MIME等),其实现技术简单、成熟。
(2)REST服务基于URI和超链接技术,不需要通过集中式的服务信息仓库即可发现服务资源。
(3)REST服务支持缓存,具有无状态的特性,这使得REST服务能够支持大量客户端,构建的应用系统具有较强伸缩性。
(4)REST服务基于轻量级的Web框架,仅仅需要基本的开发工具支持,构建过程简单且成本较低。
(5)REST服务的测试相对简单,采用浏览器即可完成服务功能测试。

三、劣势

  与传统的Web服务相比,REST服务主要存在如下不足:

(1)REST服务倡导的REST风格与实际实现尚存在一定差距。例如高层REST服务倡导使用GET、PUT、POST和DELETE所有4个统一接口,在REST实现部分通常只能采用GET和POST接口,因为大 多数的代理和防火墙会屏蔽其他接口;并且XHTML表单中只能使用GET和POST接口。
(2)REST服务要求所有的输入参数都必须在URI中传递,这样会产生对参数容量大小的限制(目前的大小是4KB)。如果超出该数量,会导致HTTP协议错误(错误代码414:Request-URI too long)。
(3)在URI中表达复杂类型的参数比较困难,且目前对URI中的参数不存在一种公认的编组(marshalling)和解编(un-marshalling)方法。

四、常见问题

  进行基于REST服务的Web应用系统的设计时可能遇到的问题包括:如何识别并设计REST风格服务;构建REST服务的运行环境,包括HTTP服务器与应用服务器选型等;富客户端表现方式及编程语言的选择;系统逻辑与物理拓扑结构的分析与设计等。

发表评论

邮箱地址不会被公开。 必填项已用*标注