RESTful介绍

REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。他是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。所以,他的这篇论文一经发表,就引起了关注,并且立即对互联网开发产生了深远的影响。

他这样介绍他的写作目的:“”我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强、性能好、适宜通信的架构”

Fielding将他对互联网软件的架构原则,定名为REST,即Representational State Transfer的缩写。我对这个词组的翻译是"表现层状态转化"。

 

RESTful Web服务会天然具备如下的属性:

a、客户端-服务器:UI是与数据存储分离的

b、无状态:每个请求会包含服务器所需的足够信息,无需维护状态进行操作

c、可缓存:服务端响应会返回足够的信息,客户端会对需要缓存的信息做合理的决策

d、统一接口:URL可以唯一识别资源

 

Richardson的成熟度模型

第0级-HTTP

  我们只需通过http协议获取资源即可

   第1级-资源

     资源会与资源统一标识符URL关联,这个级别的目的在于暴露多个资源,处理应用程序的复杂性

    eg:/users  将会包含所有用户列表

           /user/42将会包含特定的用户

  第2级-HTTP动作

      这个级别使用的是HTTP动作来识别资源可能的行为。

       主要的动作如下:

        GET: 通过URL读取数据   

        HEAD:和GET相同但不包括响应体,获取资源的元数据

        DELETE:删除指定资源

        PUT:更新或创建资源(一般幂等)

        POST:更新或创建资源

       PATCH:部分更新资源(客户端发送部分内容)

       OPTIONS:返回服务器端针对特定资源所支持的方法列表

 第3级-超媒体控制

      超媒体控制也被称为超媒体即应用状态引擎,通过使用超文本链接,可以进行服务的发现。 例如在通过使用PUT方法创建资源之后,服务端应该返回“201 CREATED”的响应,并且在响应头信息中使用Location属性中包含新创建资源的URL.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值