RESTful
中午全称:(资源)表现层状态转移
英文全称:(Resource)Representational State Transfer
先从名字理解起来,REST省略了资源这个词,这里加上方便理解。将词分割进行理解,分别如下:
-
资源:服务器上的实体,例如图片,文本文件,视频等,要有个唯一标识。
在Web中这个唯一标识就是URI(Uniform Resource Identifier)。
-
表现层:也就是格式,json呢,xml格式呢,还是jpg格式呢。
资源的表述包括数据和描述数据的元数据,例如,HTTP头"Content-Type" 就是这样一个元数据属性。例如:“application/json”
-
状态转移:资源是名词,http的不同动作转换可以实现对资源的不同动作。这个的理解看下面的例子:
**“资源”**是REST架构或者说整个网络处理的核心。比如:
http://api.qc.com/v1/newsfeed: 某人的新鲜;
http://api.qc.com/v1/friends: 某人的好友列表;
http://api.qc.com/v1/profile: 某人的详细信息;
用HTTP协议里的动词来实现资源的添加,修改,删除等操作。即通过HTTP动词来实现资源的状态扭转:
GET 用来获取资源,
POST 用来新建资源(也可以用于更新资源),
PUT 用来更新资源,
DELETE 用来删除资源。比如:
DELETE http://api.qc.com/v1/friends: 删除某人的好友 (在http parameter指定好友id)
POST http://api.qc.com/v1/friends: 添加好友
UPDATE http://api.qc.com/v1/profile: 更新个人资料