一、什么是REST
REST:表征状态转移(Representational State Transfer),是目前主流的三大web服务实现方式(REST、SOAP、XML-RPC)之一,REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格,切记它是一种开发风格而不是标准。它是一种针对网络应用的设计和开发方式,REST 定义了应该如何正确地使用(这和大多数人的实际使用方式有很大不同)Web 标准,例如 HTTP 和 URI。可以降低开发的复杂性,提高系统的可伸缩性。
REST采用Web 服务使用标准的 HTTP 方法 (GET/PUT/POST/DELETE) 将所有 Web 系统的服务抽象为资源,REST从资源的角度来观察整个网络,分布在各处的资源由URI(统一资源定位符,标识互联网中的可用的各种资源:图片、文档、视频片段、程序等)确定,而客户端的应用通过URI来获取资源的表征。Http协议所抽象的get,post,put,delete就好比数据库中最基本的增删改查,而互联网上的各种资源就好比各种信息,对于各种资源的操作最后总是能抽象成为这四种基本操作,在定义了定位资源的规则以后,对于资源的操作通过标准的Http协议就可以实现,开发者也会受益于这种轻量级的协议。
在三种主流的web服务实现方案中,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现。例如,Amazon.com提供接近REST风格的Web服务进行图书查找;雅虎提供的Web服务也是REST风格的。
REST 的五条关键原则列举如下:
- 为所有“事物”定义 ID
- 将所有事物链接在一起
- 使用标准方法
- 资源多重表述
- 无状态通信