REST全称是Representational  State Transfer, 意思是表述(表征)性状态转移.REST是一组架构约束条件和原则. REST本身并没有创造新的技术, 组件和服务, 而隐藏在RESTful背后的理念就是使用WEB的现有特征和能力, 更好的使用现有Web标准中的一些准则和约束.

分别从资源的定义, 获取, 表述, 关联, 状态变迁等角度

  资源与URI

  统一资源接口

  资源的表述

  资源的链接

  状态的转移

资源与URI

任何事物, 只要有被引用到的必要, 他就是一个资源, 资源可以是实体, 也可以只是一个抽象概念.

  - 某用户的手机号

  - 某用户的个人信息

  - 最多用户订购的GPRS套餐

  - 两个产品之间的依赖关系

  - 某手机号的潜在价值

要让一个资源可以识别, 需要有一个唯一标识符, 在Web中这个唯一标识就是URI(Uniform Resource Identifier)

URI既可以看成资源的地址, 也可以看成是资源的名称. 如果某些信息没有使用URI来表示, 那他就是一个资源, 只能算是一些信息而已. URI的设计应该遵循可寻址性原则, 具有自描述性, 需要在形式上给人直觉上的关联.

增加_或-分隔符分割一些单词, 让URI看起来更人性化

使用/来表示资源的层级关系

使用?用来过滤

, 或 ; 可以表示同级资源的关系

统一的资源接口

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

资源的表述

客户端取的只是资源的表述, 资源在外界的具体呈现, 可以有多种表述(或称为表现, 表述)形式, 在客户端和服务端之间传输的也是资源的表述, 而不是资源的本身.

资源的表述包括数据和描述的元数据, 例如, HTTP头"Content-Type"就是这样一个数据属性.

客户端已Accept头请求格式的表述, 服务端则通过Content-Type告诉客户端资源的表述形式.

application/json, text/html

在URL里面带上版本号

  - http://api.example.com/1.0/foo

  - http://api.example.com/1.2/foo

  - http://api.example.com/2.0/foo

通过Accept头部来区分,

  - Accept: vnd.example-com.foo+json; version=1.0

  - Accept: vnd.example-com.foo+json; version=1.2

  - Accept: vnd.example-com.foo+json; version=2.0

  

转载于:https://www.cnblogs.com/chenrun/p/9907184.html

RESTful 架构相关推荐

  1. [转] 理解RESTful架构

    FROM:http://www.ruanyifeng.com/blog/2011/09/restful.html 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件 ...

  2. 理解RESTful架构

    越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency).高 ...

  3. RESTful 架构基础

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来自:唐尤华 译自:https://dzone.com/refca ...

  4. 初识Restful架构

    1.对Rest(Restful)的理解 理解RESTful架构 怎样用通俗的语言解释REST,以及RESTful 维基百科:Representational state transfer 2.Rest ...

  5. [转载] 理解RESTful架构

    原文: http://www.ruanyifeng.com/blog/2011/09/restful.html 理解RESTful架构 作者: 阮一峰 日期: 2011年9月12日 越来越多的人开始意 ...

  6. RESTful架构风格

    REST即Representational State Transfer的缩写,可译为"表现层状态转化".REST最大的几个特点为:资源.统一接口.URI和无状态. 资源 所谓&q ...

  7. 理解RESTful架构【转】

    越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency).高 ...

  8. RESTful架构详解【转】

    1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的 ...

  9. [NOTE] RESTful架构

    [NOTE] RESTful架构 前言 是对RESTful架构的学习笔记 学习资料: 理解RESTful架构-阮一峰 RESTful架构详解-菜鸟教程 正文 概念 REST Representatio ...

  10. RESTful 架构详解

    1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的 ...

最新文章

  1. RMAN-03002、RMAN-06059
  2. Servlet底层原理、Servlet实现方式、Servlet生命周期
  3. cometoj contest 6(记录型博客)
  4. Sparklens:Spark应用程序优化工具
  5. rust python对比_Python Rust 迭代器对比
  6. 河南省计算机三级准考证打印入口,2016年下半年河南计算机三级准考证打印入口及网址,计算机等级考试时间查询...
  7. c++ 中变量成员的初始化时机
  8. mysql+win10+64位安装步骤_win10 安装 mysql解压版安装步骤
  9. iOS App创建桌面快捷方式
  10. javaScript数据类型转换—显式转换(二)
  11. PLC MODBUS RTU读写IC卡操作
  12. 心理学当中一些很有用的定律
  13. Netty in Action 中文版 --最贴近原著的翻译
  14. 我国第三方支付的发展及监管现状
  15. 一周信创舆情观察(6.8~6.14)
  16. 【密码学】古代、古典密码
  17. 学术大咖教你一个轻松在论文中画出漂亮插图的方法
  18. 为什么我电脑一开机显示器不亮要重启显示器才亮
  19. Python Scapy(2.3.1)文档学习(三):使用
  20. 微信扫描二维码调用手机外部浏览器打开下载apk的链接

热门文章

  1. 收获,不止SQL优化——抓住SQL的本质--第十四章
  2. golang map的无序性验证
  3. java七大设计原则,23种设计模式
  4. windows环境下 安装gcc
  5. python控制树莓派gpioled,Python 控制树莓派 GPIO 输出:控制 LED 灯
  6. 用GPG保卫你的重要文件-GnuPG/Gpg4win使用说明
  7. Rust中mut, , mut的区别
  8. linux中断底半部机制
  9. javascript嵌套函数和在函数内调用外部函数的区别
  10. cmd窗口pip显示不是内部或外部命令,也不是可运行的程序或批处理文件