表现层状态转换

✍ dations ◷ 2025-02-25 14:11:54 #表现层状态转换

表现层状态转换(英语:Representational State Transfer,缩写:REST)是Roy Thomas Fielding(英语:Roy Thomas Fielding)博士于2000年在他的博士论文中提出来的一种万维网软件架构风格,目的是便于不同软件/程序在网络(例如互联网)中互相传递信息。表现层状态转换是根基于超文本传输协议(HTTP)之上而确定的一组约束和属性,是一种设计提供万维网络服务的软件构建风格。符合或兼容于这种架构风格(简称为 REST 或 RESTful)的网络服务,允许客户端发出以统一资源标识符访问和操作网络资源的请求,而与预先定义好的无状态操作集一致化。因此表现层状态转换提供了在互联网络的计算系统之间,彼此资源可交互使用的协作性质(interoperability)。相对于其它种类的网络服务,例如SOAP服务,则是以本身所定义的操作集,来访问网络上的资源。

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

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

每个资源都可以通过URI访问到。

也就是一个个可以认知的资源,比如文档,音乐,视频等信息,都可以通过唯一的URI确定。

就是我们通过客户端可以修改原资源的状态。

这样重表达的客户端可以知道如何处理。

处理以超媒体为基础的状态变化。

REST架构风格最重要的架构限制有6个:

请求中包含了各种独立资源的标识,例如,在Web服务中的URI。资源本身和发送给客户端的标识是独立。例如,服务器可以将自身的数据库信息以HTML、XML或者JSON的方式发送给客户端,但是这些可能都不是服务器的内部记录方式。

当客户端拥有一个资源的标识,包括附带的元数据,则它就有足够的信息来删除这个资源。

每一个消息都包含足够的信息来描述如何来处理这个信息. 例如,媒体类型 (media-type) 就可以确定需要什么样的分析器来分析媒体数据.

同用户访问Web服务器的Home页面相似,当一个 REST 客户端访问了最初的REST应用的URI之后,REST 客户端应该可以使用服务器端提供的链接,动态的发现所有的可用的资源和可执行的操作。随着访问的进行,服务器在响应中提供文字超链接,以便客户端可以得到当前可用的操作。客户端无需用确定的编码的方式记录下服务器端所提供的动态应用的结构信息。

应该注意区别应用的状态和连接协议的状态。HTTP连接是无状态的(也就是不记录每个连接的信息),而REST传输会包含应用的所有状态信息,因此可以大幅降低对HTTP连接的重复请求资源消耗。

符合REST设计风格的Web API称为RESTful API。它从以下三个方面资源进行定义:

下表列出了在实现RESTful API时HTTP请求方法的典型用途。

PUT和DELETE方法是幂等方法。GET方法是安全方法(不会对服务器端有修改,因此当然也是幂等的)。

不像基于SOAP的Web服务,RESTful Web服务并没有“正式”的标准。这是因为REST是一种架构,而SOAP只是一个协议。虽然REST不是一个标准,但大部分RESTful Web服务实现会使用HTTP、URI、JSON和XML等各种标准。

例如,一个简单的网络商店应用:

相关

  • 加里西亚语加利西亚语(加利西亚语:galego)属印欧语系罗曼语族,是西班牙官方语言之一。母语人口主要分布于西班牙西北部的加利西亚自治区和葡萄牙,共约三至四百万。ISO 639语言编码为gl和glg
  • 弗兰茨·马尔克弗兰茨·马尔克(1880年2月8日出生于慕尼黑,1916年3月4日死于法国凡尔登战役),德国画家,艺术团体“蓝骑士”的成员。他是二十世纪最伟大的画家之一和德国表现主义的创始人之一。弗
  • CanonCanon(音标:英-;美-)是英文名词,意思是“典型”或“真传经典”,也可表示: 1.正式〔伦理或思想行为上的〕规范、标准、准则,如行为(高尚趣味)的准则。 2.原著、真作、真本(书目)、正经
  • 种族编码狗哨政治(英语:Dog-whistle politics)指使用编排过的隐语的来向特定人群传递政治信息的手法。对于普通大众来说,这样的信息看起来也是可以理解的,但是实际的目标群体会有不同的理
  • 轿车轿车,某些地区称房车或私家车,美国英语称为Sedan,在英国则称为Saloon,通常指用于人员以及行李运输的汽车。轿车除乘客厢外,外观上可见明显长度的车头与车尾,因此可从外形上清晰分
  • 特里凡得琅提鲁瓦南塔普拉姆(马拉雅拉姆语:Thiruvananthapuram,തിരുവനന്തപുരം),英语常称为Trivandrum(译为特里凡得琅),是印度南端的一个城市,为喀拉拉邦的首府。拥有印度第五大国
  • 僰人悬棺僰人悬棺在四川省珙县、兴文县、筠连县等县;云南省盐津县,威信县、永善县等境内均有分布。是古代僰人的墓葬。其中四川珙县僰人悬棺是全国重点文物保护单位。兴文僰人悬棺是四
  • 廖明毅廖明毅(LIAO Ming-yi,1980年1月18日-),台湾导演、编剧、摄影师暨剪辑师,国立台湾艺术大学应用媒体艺术研究所毕业,2005年进入影像创作领域,导演作品横跨MV、广告、短片和长片。参与
  • 阿里贝特·海曼阿里贝特·海曼(德语:Aribert Heymann,1898年12月9日-1946年),德国男子曲棍球运动员,所属俱乐部是柏林HC。他曾代表德国参加1928年夏季奥林匹克运动会曲棍球比赛,获得一枚铜牌。
  • 佐藤由希佐藤由希(1980年11月3日-)是一名日本女子垒球运动员。她在2004年雅典夏季奥林匹克运动会中,参加了女子垒球比赛并为日本队获得女子团体铜牌。