REST系统的特征

作者:小辉
链接:https://www.zhihu.com/question/28557115/answer/41268927
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

什么是 REST?

下面六条准则定义了一个 REST 系统的特征:

  • 客户-服务器(Client-Server),提供服务的服务器和使用服务的客户需要被隔离对待。
  • 无状态(Stateless),来自客户的每一个请求必须包含服务器处理该请求所需的所有信息。换句话说,服务器端不能存储来自某个客户的某个请求中的信息,并在该客户的其他请求中使用。
  • 可缓存(Cachable),服务器必须让客户知道请求是否可以被缓存。(Ross:更详细解释请参考 理解本真的REST架构风格 以及 StackOverflow 的这个问题 中对缓存的解释。)
  • 分层系统(Layered System),服务器和客户之间的通信必须被这样标准化:允许服务器和客户之间的中间层(Ross:代理,网关等)可以代替服务器对客户的请求进行回应,而且这些对客户来说不需要特别支持。
  • 统一接口(Uniform Interface),客户和服务器之间通信的方法必须是统一化的。(Ross:GET,POST,PUT.DELETE, etc)
  • 支持按需代码(Code-On-Demand,可选),服务器可以提供一些代码或者脚本(Ross:Javascrpt,flash,etc)并在客户的运行环境中执行。这条准则是这些准则中唯一不必必须满足的一条。(Ross:比如客户可以在客户端下载脚本生成密码访问服务器。)

什么是一个 RESTful 的 Web Service?

REST 架构最初被设计出来用于 World Wide Web 使用的 HTTP 协议

RESTful Web Service 的核心概念在于对 Resources 的抽象。Resources 被 URIs (Uniform Resource Identifier) 表征。客户使用 HTTP 协议定义的方法发送请求给这些 URIs,然后相应的资源的状态就可能会发生变化。

HTTP 请求的方法是被专门设计出来以标准的方式影响给定资源的:

Get:从某种资源获取信息 http://example.com/api/orders (获取 order list)
Get:从某个资源获取信息http://example.com/api/orders/123 (获取 order #123)
POST:创建一个新资源http://example.com/api/orders (根据请求中的数据创建一个新 order)PUT:更新一个资源http://example.com/api/orders/123 (根据请求中的数据更新 #order 为 123 的 order)
DELETE:删除一个资源http://example.com/api/orders/123 (删除 #order 为 123 的 order)

时间: 2024-10-09 04:59:23

REST系统的特征的相关文章

工作流/BPM 宏观巨系统的特征

根据我们的观察,现在发现,在一个尚未确定具体位置的空间里面,已经存在一个椭圆型的小恒星集团 这个小恒星集团里面大概有2800多颗-年龄为10-18岁的小恒星,地球上各个国家的工作流和BPM系统 可能都在这个星团里面有自己的恒星,有些恒星产生了卫星系统,而有些还没有.. 这个恒星集团已经产生了空间防御层,外来的入侵和攻击已经失效....这个恒星集团的颜色 是硫黄色,带有硫磺光芒和氯光,请根据这个特征来搜索 请你们使用数字巡天系统和各种搜星系统准确定位自己的企业和家族的宏观巨系统的位置... 再次向

调节技术术语和部分传递系统的举例分析

1.模拟信号:4种例子:数字信号:有限且离散信息参数取值的信号2.起模拟作用的传递环节或系统的特征:模拟输出信号再现模拟输入信号(信号必须不存在线性关系......?)3.传输周期:nt小于等于采样周期4.采样保持环节产生的误差:时间移位1/2采样周期.平均幅值偏差1/2分辨率                          *5.采样周期为调节回路中最小应处理延迟时间的1/2,                                                        * 

2016年第9本:系统之美

花0.10元钱试用了7天的Amazon Unlimited计划(7天过后,自动改为每月12元),有些书还是不错的,很快就发现了这本<系统之美---决策者的系统思考>,整天被权总的大系统论洗脑,也得自己看看系统论的权威之作. 很多人只是机械地应对,专注于事件层面的响应,而并未触及问题产生的根源.很多对策并未抓住问题的本质,只是“治标不治本”的“症状缓解”,或者不全面地解决问题,导致“按下葫芦浮起瓢”,到处救火.应接不暇. 管理者所遇到的问题通常都不是彼此孤立的,而是相互影响.动态变化的,尤其是在

Linux系统用户、组和权限及管理

初学Linux,现将对用户.组和权限及管理做了一些整理,希望大家相互学习! 用户: 即在系统内将有限的资源在多个使用者之间进行分配的一个系统组件: 用户分类:Linux环境中用户一般分为管理员和普通用户: 管理员(root)是系统中的超级用户,被授予对系统资源所有的访问权限,可以对其它其它用户及组进行管理: 普通用户又分为系统用户和登录用户: 系统用户:仅用于运行服务程序,保障系统正常运行: 登录用户:系统资源的正常使用者,访问资源的权限需要Root管理指定: 用户ID(User ID UID)

Linux系统用户与用户组介绍

一:Linux多用户多任务介绍 Linux/Unix是一个多用户,多任务的操作系统:在介绍Linux账号及账号组管理之前,先简单了解下多用户,多任务操作系统的基本概念. Linux的单用户多任务 鉴于大家对windows比较熟悉,因此先以windows系统为例阐述.当我们以管理员账号administrator用户登录windows系统后,可能需要编辑word文档内容,但在编辑文件的过程中,又可能会同时打开音乐播放器听音乐:同时还可能会打开MSN/QQ等一些程序.其中编辑word文档.开播放器,开

学习笔记(信号与系统)

学习笔记(信号与系统) 来源:网络 第一章 信号和系统 信号的概念.描述和分类 信号的基本运算 典型信号 系统的概念和分类 1.常常把来自外界的各种报道统称为消息: 信息是消息中有意义的内容: 信号是反映信息的各种物理量,是系统直接进行加工.变换以实现通信的对象. 信号是信息的表现形式,信息是信号的具体内容:信号是信息的载体,通过信号传递信息. 2.系统(system):是指若干相互关联的事物组合而成具有特定功能的整体. 3.信号的描述--数学描述,波形描述. 信号的分类: 1)确定信号(规则信

facebook海量图片存储系统与淘宝TFS系统比较

本篇论文的原文可谓通俗易懂.行云流水.结构清晰.图文并茂……正如作者所说的——"替换Facebook的图片存储系统就像高速公路上给汽车换轮子,我们无法去追求完美的设计……我们花费了很多的注意力来保持它的简单",本篇论文也是一样,没有牵扯空洞的庞大架构.也没有晦涩零散的陈述,有的是对痛点的反思,对目标的分解,条理清晰,按部就班.既描述了宏观的整体流程,又推导了细节难点的技术突破过程.以至于译者都不需要在文中插入过多备注和解读了^_^.不过在文章末尾,译者以淘宝的解决方案作为对比,阐述了文

浅析分时系统和实时系统

1.分时系统 分时系统(Time Sharing System),它能很好地将一台计算机提供给多个用户同时使用,提高计算机的利用率.它被经常应用于查询系统中,满足许多查询用户的需要.用户的需求具体表现在以下几个方面: (1)人-机交互.每当程序员写好一个新程序时,都需要上机进行调试.由于新编写的程序难免有些错误或不当之处需要修改,因而希望能像早起使用计算机时一样对它进行直接控制,并能以边运行边修改的方式,对程序中的错误进行修改,即,希望能进行人-机交互. (2)共享主机,在 20世纪60年代计算

大型广告系统架构 — 检索模块

广告系统主要解决一个问题:在给定展示场景.用户的情况下,返回收益最大化的广告.下图是一个广告系统最简单的架构图.其中,Router,检索模块,排序模块一般称为广告系统的核心.同时,与之辅助的至少包含三大系统:特征计算系统,计费系统,投放系统. 先介绍一下三个辅助系统的主要功能: 特征计算系统:实时计算广告展示环境 (网页,APP) 的特征,用户的特征.并提供实时查询功能. 计费系统:实时处理广告的展现 (CPM).点击 (CPC).转化 (CPA)数据,并计算广告的剩余预算.需要包括反作弊功能.