Restful架构
什么是REST
REST是Representational State Transfer的简称,翻译为中文是:表征状态转化/表现层状态转化。要理解RESTful架构,就要理解Representational State Transfer到底什么意思,它每个词代表了什么涵义?
-
资源(Resources)
REST中的”表现层“其实是指的是”资源(Resource)“的”表现层“。任何事物,只要有被引用到的必要,它就是一个资源。
所有的数据,不管是从网络获取的还是操作数据库获得(增删查改)的,都是资源。它可以是一段文本、一张图片、一首歌曲…是一个具体的实在。将一切数据视为资源是REST区别于其他架构风格的最本质属性。
要让一个资源可以被识别,就需要一个唯一的标识。在web中可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI。要获取这种资源,访问它的URI就可以。
URI既可以看成资源的地址,也可以看成资源的名称。如果某些信息没有使用URI来表示,那它就不能算是一个资源,只能算资源的一些信息而已。
对互联网上的任意东西都可视为资源,而上网其实就是,与互联网上的一系列“资源”互动,调用它的URI。
-
表现层(Representation)
“资源”具体呈现出来的形式,就是“表现层”。比如,文本可以用txt格式表现,也可以用HTML、JSON等格式表现;图片可以用png、jpg格式表现。
URI只代表资源的位置,不代表它的形式。它的具体表现形式,应该在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段才是对“表现层”的描述。
-
状态转化(State Transfer)
访问网站,就代表了客户端和服务器的互动过程。在这个过程中,一定会涉及到数据和状态的变化。
互联网通信协议HTTP协议,是一个无状态协议。意味着,所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生“状态转化(State Tranfer)”。而这种转化是建立在表现层上,所以就是表现层状态转化。
客户端用到的手段,只能是HTTP协议,里面有四个操作方式的动词:GET(获取资源)、POST(新增资源)、PUT(更新资源)、DELETE(删除资源)。
总结
1. 每一个URI代表一种资源;
2. 客户端和服务器之间,传递这种资源的某种表现层;
3. 客户端通过四个HTTP动词,对服务器端资源进行操作。
参考文章
下一篇: java中的NAN和INFINITY