首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

你认识R、E、S、T,你知道REST吗?

你点进来看这篇文章,说明你也不知道REST,哈哈,其实我也不知道,我正是要通过这篇文章让自己更加理解它,假如你是大神,还请不吝赐教。

咱们言归正传,REST最早由Roy Thomas Fielding博士提出,符合REST原则的互联网软件架构,就被称为RESTful架构,而且它目前是最流行的。

既然RESTful架构是最流行的的架构,那我们作为程序员,当然要了解一下它的具体含义了。

首先,我们从名称入手,REST是Representational State Transfer的缩写,对该词组的有道翻译是“表述性状态转移”。那我们怎么理解“表述性状态转移”呢?

仅仅看“表述性状态转移”,感觉没头没脑的,但是前面加上资源,资源的表述性状态转移,好像还是不能理解。

那咱们接着往下说,我们是在讨论一种互联网软件架构,那么这里的“资源”,指的是互联网上的一个个具体信息,不仅仅包含“电影”,还包括文本、图片、音乐、服务等等,这些资源我们都可以用一个特定的URI(统一资源标识符,Uniform Resource Identifier)指向它。其实,你下载的每个“电影”,你都是访问了它的URI,人们口中说的“上网”,其实就是访问了一堆URI,并与之“互动”。

那“资源”咱们讲清楚了,“资源的表述性”又是什么呢?

作为程序员,透过现象看本质,“电影”也不过表现为一堆二级制罢了,但是为了方便你欣赏观看,“电影”表现为avi、mp4、rmvb等格式,那么文本的“表述性”,可以是txt格式,也可以是html格式、xml格式、json格式,图片的“表述性”,可以是jpg格式、png格式。

接下来,我们来理解一下“状态转移”。

我们前面提到URI,而在互联网中我们常用的一种URI类型是URL(统一资源定位符,Uniform Resource Locator),而我们最常用的URL是HTTP(超文本传输协议,Hypertext Transfer Protocol)协议的URL,其他的协议还有HTTPS、FTP、TELNET等。

当我们在网站上,找到一部“电影”,其实我们是找到了这个“电影”HTTP形式的URL,

当我们要与这个URI进行“互动”,无非就是下载它,发出一个http请求,而http协议本身是无状态协议,我们所说的“状态转移”,指的是让服务器发生“状态转移”,下载时你用了http协议里面GET方法,让网站上的“电影”进行“表述性转移”之后到达你的电脑硬盘。

RESTful架构请求方式还包括GET、POST、PUT、DELETE。这四个HTTP动词分别对应四种RESTful架构基本操作:GET获取资源,POST新建资源(也用于更新资源),PUT用来更新资源,DELETE用来删除资源。

综上所述你的架构能够提供如下一组API,那么就是符合RESTful架构的设计。

而不能是

URI中使用名词gzhinfo而不是动词getgzhinfo。

以上内容,就是我对REST的理解了。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180126G0HRNW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券