美文网首页
RESTful架构详解

RESTful架构详解

作者: BlueSkyBlue | 来源:发表于2020-03-15 17:15 被阅读0次

什么是REST

REST指的是一组架构约束条件和原则。如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构。

REST本身并没有创建新的技术、组件或服务,而隐藏在RESTful背后的理念就是使用Web的现有特征和能力。更好的使用现有Web标准中的一些准则和约束。虽然REST本身受Web的影响很深,但理论上REST架构风格并不是绑定在HTTP上,只不过HTTP是目前唯一与REST相关的实例。所以我们这里描述的REST也是HTTP实现的REST。

要理解RESTful的架构,需要理解Representational State Transfer这个词组到底是什么意思,它的每一个词都代表什么意思。

资源与URI

REST的全程是表述性状态转移,那究竟指的是什么的表述呢?其实就是资源。任何事物只要有被引用到的必要,它就是一个资源。资源可以是一个实体,也可以是一个抽象的概念。

要想要资源被识别,需要有一个标识,在Web中这个唯一标识是URI(Uniform Resource Identifier)。URI既可以看成是资源的地址也可以看成是资源的名称。如果某些信息没有使用URI来表示,那它就不能算是一个资源,只能算是资源的一些信息而已。URI的设计应当遵循可寻址性原则,具有自描述性。需要在形式上给人以直觉的关联。

统一资源接口

RESTful架构风格应当遵循统一接口原则,统一接口包含了一组受限的预定义操作,不论什么样的资源,都是使用相同的接口对资源进行访问。接口应该使用标准的Http方法例如GET, PUT和POST,并遵循这些方法的语义。

如果按照Http方法的语义来暴露资源,那么接口将拥有安全性和幂等性的特性。例如GET和HEAD请求都是安全的,无论请求多少次,都不会改变服务器的状态。而GET, HEAD,PUT和DELETE请求都是幂等的。无论对资源操作多少次结果都是一样的。后面的请求并不会产生比第一次更多的影响。

GET

安全且幂等
获取表示
变更时获取表示(缓存)

POST

不安全且不幂等
使用服务端管理的实例号创建资源
创建子资源
部分资源更新
如果没有修改,则不过更新资源(乐观锁)

PUT

不安全但幂等
用客户端管理的实例号创建一个资源
通过替换的方式更新一个资源
如果未被修改,则更新资源(乐观锁)

DELETE

不安全但幂等
删除资源

POST和PUT有什么区别:

POST和PUT创建资源的区别在于,所创建的资源的名称(URI)是否由客户端决定。

资源的表述

客户端获取的只是资源的表述。资源在外界的具体呈现,可以有多种表述形式,在客户端和服务端传递的也是资源的表述,而不是资源的本身。例如文本资源可以采用html, json, xml等格式。图片可以使用PNG或JPG展现出来。

资源的表述包含数据和描述资源的元数据。例如HTTP头的“Content-Type”就是这样一个元数据属性。

客户端如何知道服务端提供那种表述形式呢
可以通过HTTP内容协商,客户端可以通过Accept头请求一种特定的格式的表述。服务端则通过Content-Type告诉客户端资源的表述形式。

状态的转移

REST遵循无状态通信原则。这并不代表客户端应用不能有状态。而是指服务端不应保留客户端的状态。

相关文章

  • RESTful风格

    参考 资源与URI使用_或-来让URI可读性...

  • RESTful 架构详解

    转自:http://www.runoob.com/w3cnote/restful-architecture.htm...

  • RESTful架构详解

    什么是REST REST指的是一组架构约束条件和原则。如果一个架构符合REST的约束条件和原则,我们就称它为RES...

  • 【转】RESTful架构详解

    1.什么是REST REST全称是Representational State Transfer,中文意思是表述(...

  • 应用Flask框架设计RESTFUL API接口

    笔记 RESTful架构风格概述 RESTful架构风格 RESTful架构风格最初由Roy T. Fieldin...

  • RESTful API 使用解读

    理解 RESTFul 架构 RESTful API 设计指南

  • Restful API

    Restful API架构 RESTful(Representational State Transfer)是目前...

  • REST框架——RESTful

    理解RESTful架构 RESTful API 设计指南——阮一峰 由来 从技术架构层面上看,Web的技术架构包括...

  • restful

    理解RESTful架构

  • RESTful API 设计

    RESTFUL架构 RESTful架构,就是目前最流行的一种互联网软件架构,定名为REST,即Representa...

网友评论

      本文标题:RESTful架构详解

      本文链接:https://www.haomeiwen.com/subject/ouhjehtx.html