REST架构风格研究程序员

REST之前:Programmable Web

2014-04-21  本文已影响374人  Gevin
imageimage

REST架构风格的服务(或者它开放的api),属于Programmable Web。研究REST 架构风格,要从Programmable Web说起。

Programmable Web一词来源于《Restful Web Services》,我觉得凭字面意思理解就好了。所谓的Programmable Web,可以理解为网站的内容源自服务器的资源,服务器上的所有资源都能够以某种方式提供给客户端,客户端的网站可以根据自己的需求设计每个页面,以及页面中可以显示的服务器端资源。从Programmable Web角度看,twitter是对twitter api编程产生的一个产品;新浪微博的官方网站,第三方客户端和应用等也都是基于新浪微博api编程产生的一系列的产品。

组成部分

Programmable Web主要由三部分组成:HTTP,Method Information(方法信息)和作用域(Scoping Information)。

HTTP

我们谈论的是web,web上少不了http。(http详情可以参考wikipedia

对于Programmable Web而言,客户端要获得服务器上的资源,需要发起一个http request,服务器接收客户端的请求并作出反馈会给客户端发送一个http response,http request和http response都要封装到envelope中传输

http request的主要组成

http response的主要组成

现在不同的web service在设计与实现时,对两个问题的解决差别很大,分别为如何传递 『Method Information』以及如何表达『Scoping Information』

Method Information

Method表达的是,客户端如何向服务器传达自己请求的操作是什么(create, delete, update or read?),或者服务器暴露出来的api对数据或者请求做怎样的处理。

REST 架构风格利用HTTP method作为Method Information的载体。

Scoping Information

Scoping information表达了数据的选择。服务器应该对哪个数据集执行客户端的请求操作?为什么服务器要update(or get, delete, etc.)这个数据集,而不去update那个数据集?这些都是由Scoping information决定的。

有些web service 会将Scoping Information封装到请求的envelope中,而RESTful架构风格直接将该信息暴露在url中。

最后

本文介绍了Programming Web的三个主要组成部分: http, method 和scope。由于不同的web service对method information和 scoping information的处理方式不同,架构风格可以分为 RESTful, RPC-Style及REST-RPC混合架构,这些架构有何不同,这里先挖个坑,后面填上~


图片来源于网站 programming web(PS:与本文的『programming web』不是一回事 :P)

上一篇 下一篇

猜你喜欢

热点阅读