REST学习总结

0.前言

如果说JAVA将万物抽象成了对象,REST设计风格则将万物抽象成了资源。

1.从哪来

具象状态传输(英文:Representational State Transfer,简称REST)是Roy Thomas Fielding博士(http协议定义的参与者)于2000年在他的博士论文 “Architectural Styles and the Design of Network-based Software Architectures” 中提出来的一种万维网软件架构风格。

目前在三种主流的Web服务实现方案中,因为REST模式与复杂的SOAPXML-RPC相比更加简洁,越来越多的web服务开始采用REST风格设计和实现。例如,Amazon.com提供接近REST风格的Web服务执行图书查询;雅虎提供的Web服务也是REST风格的。

2.是什么

需要注意的是,REST是设计风格而不是标准。REST通常基于使用HTTP,URI,和XML以及HTML这些现有的广泛流行的协议和标准。

  1. 资源是由URI来指定。
  2. 对资源的操作包括获取、创建、修改和删除资源,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。
  3. 通过操作资源的表现形式来操作资源。
  4. 资源的表现形式则是XML或者HTML,取决于读者是机器还是人,是消费web服务的客户软件还是web浏览器。当然也可以是任何其他的格式

3.干什么

因为REST设计风格基于HTTP协议,所以整个设计将通过四个动词状态(GET / PUT / DELETE / POST)对请求进行功能类别定义。

HTTP请求方法在RESTful API中的典型应用
这里写图片描述
此图来自
Richardson, Leonard; Ruby, Sam, RESTful Web Services, O’Reilly, 2007 ((May 8, 2007)), ISBN 0596529260

通过这种定义形式,我们可以将一个对于URL的处理方法对应为4种类型的处理模式,大大降低了开发的复杂程度;另外,通过对HTTP状态码的处理我们可以讲后台的一部分不重要的业务逻辑转移到前台进行处理,这将简化服务器与客户端之间信息传输的大小(HTTP状态码为固定存在)
如下图所示,状态码的多样化可以为我们在前台处理不同业务打下基础:
这里写图片描述

4.为什么

为什么我们要使用REST设计方式?

  • 因为本身基于HTTP协议的原因,REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁

  • 可更高效利用缓存来提高响应速度

  • 通讯本身的无状态性可以让不同的服务器的处理一系列请求中的不同请求,提高服务器的扩展性

  • 浏览器即可作为客户端,简化软件需求

  • 相对于其他叠加在HTTP协议之上的机制,REST的软件依赖性更小

  • 不需要额外的资源发现机制

  • 在软件技术演进中的长期的兼容性更好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值