欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Restful架构

程序员文章站 2024-03-25 19:17:40
...

什么是REST

REST是Representational State Transfer的简称,翻译为中文是:表征状态转化/表现层状态转化。要理解RESTful架构,就要理解Representational State Transfer到底什么意思,它每个词代表了什么涵义?

  1. 资源(Resources)

    REST中的”表现层“其实是指的是”资源(Resource)“的”表现层“。任何事物,只要有被引用到的必要,它就是一个资源。

    所有的数据,不管是从网络获取的还是操作数据库获得(增删查改)的,都是资源。它可以是一段文本、一张图片、一首歌曲…是一个具体的实在。将一切数据视为资源是REST区别于其他架构风格的最本质属性。

    要让一个资源可以被识别,就需要一个唯一的标识。在web中可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI。要获取这种资源,访问它的URI就可以。

    URI既可以看成资源的地址,也可以看成资源的名称。如果某些信息没有使用URI来表示,那它就不能算是一个资源,只能算资源的一些信息而已。

    对互联网上的任意东西都可视为资源,而上网其实就是,与互联网上的一系列“资源”互动,调用它的URI。

  2. 表现层(Representation)

    “资源”具体呈现出来的形式,就是“表现层”。比如,文本可以用txt格式表现,也可以用HTML、JSON等格式表现;图片可以用png、jpg格式表现。

    URI只代表资源的位置,不代表它的形式。它的具体表现形式,应该在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段才是对“表现层”的描述。

  3. 状态转化(State Transfer)

    访问网站,就代表了客户端和服务器的互动过程。在这个过程中,一定会涉及到数据和状态的变化。

    互联网通信协议HTTP协议,是一个无状态协议。意味着,所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生“状态转化(State Tranfer)”。而这种转化是建立在表现层上,所以就是表现层状态转化。

    客户端用到的手段,只能是HTTP协议,里面有四个操作方式的动词:GET(获取资源)、POST(新增资源)、PUT(更新资源)、DELETE(删除资源)。

总结

1. 每一个URI代表一种资源;
2. 客户端和服务器之间,传递这种资源的某种表现层;
3. 客户端通过四个HTTP动词,对服务器端资源进行操作。

参考文章

https://www.ruanyifeng.com/blog/2011/09/restful.html

相关标签: restful