理解本真的REST架构风格
在图1中,每一个椭圆形内里的缩写词代表了一种架构气势派头,而每一个箭头边的单词代表了一种架构约束。
REST架构气势派头最主要的架构约束有6个:
客户-服务器(Client-Server)通讯只能由客户端片面提倡,体现为请求-响应的形式。
无状态(Stateless)通讯的会话状态(Session State)应该所有由客户端卖力维护。
缓存(Cache)响应内容可以在通讯链的某处被缓存,以改善网络效率。
统一接口(Uniform Interface)通讯链的组件之间通过统一的接口相互通讯,以提高交互的可见性。
分层系统(Layered System)通过限制组件的行为(即,每个组件只能“看到”与其交互的紧邻层),将架构剖析为若干品级的层。
按需代码(Code-On-Demand,可选)支持通过下载并执行一些代码(例如Java Applet、Flash或JavaScript),对客户端的功效举行扩展。
在论文中推导出的REST架构气势派头如下图所示:
图2:REST架构气势派头(原图可在这里下载)
而HTTP/1.1协议作为一种REST架构气势派头的架构实例,其架构如下图所示:
图3:一个基于REST的架构的历程视图(原图可在这里下载)
用户署理处在三个并行交互(a、b和c)的中心。用户署理的客户端毗连器缓存无法知足请求,因此它凭据每个资源标识符的属性和客户端毗连器的设置,将每个请求路由到资源的泉源。请求(a)被发送到一个当地署理,署理随后会见一个通过DNS查找发现的缓存网关,该网关将这个请求转发到一个能够知足该请求的泉源服务器,服务器的内部资源由一个封装过的工具请求署理(object request broker)架构来界说。请求(b)直接发送到一个泉源服务器,它能够通过自己的缓存来知足这个请求。请求(c)被发送到一个署理,它能够直接会见WAIS(一种与Web架构分散的信息服务),并将WAIS的响应翻译为一种通用的毗连器接口能够识此外花样。每一个组件只知道与它们自己的客户端或服务器毗连器的交互;整个历程拓扑是我们的视图的产物。
通过比力图2和图3,读者不难发现这两张图中的架构是高度一致的。对于HTTP/1.1协议为何要设计成这个样子,读者想必已经有所意会。
在论文的第六章中,Fielding对于到2000年为止在Web基础架构协议的设计和开发方面的一些履历教训举行了深入的剖析。其中,“HTTP不是RPC”、“HTTP不是一种传输协议”两部门值得读者重复阅读。时至13年之后的今日,对于HTTP协议的误解仍然普遍存在。
以上简要先容了Fielding博士论文中的内容。为了资助读者仔细阅读Fielding的博士论文,笔者整理了一套Fielding博士论文的导读,将在本专栏后续文章中载出。
REST详解REST事实是什么?由于REST的内在很是富厚,以是很难用一两句话诠释清晰这个问题。
首先,REST是Web自身的架构气势派头。REST也是Web之以是取得乐成的手艺架构方面因素的总结。REST是天下上最乐成的漫衍式应用架构气势派头(乐成案例:Web,还不够吗?)。它是为“运行在互联网情况”的“漫衍式”“超媒体”系统量身定制的。互联网情况与企业内网情况有很是大的差异,最主要的差异是两个方面:
可伸缩性需求无法控制:并发会见量可能会暴涨,也可能会暴跌。
宁静性需求无法控制:无法控制客户端发来的请求的花样,很可能会是恶意的请求。
而所谓的“超媒系统统”,即,使用了超文本的系统。可以把“超媒体”明白为超文本+媒体内容。
REST是HTTP/1.1协议等Web规范的设计指导原则,HTTP/1.1协议正是为实现REST气势派头的架构而设计的。新的Web规范,其设计必须切合REST的要求,否则整个Web的系统架构会由于引入严重矛盾而瓦解。这句话不是危言耸听,做个类比,如果沈阳市政府赞成在市区著名园林的四周大型土木,制作大量具有后现代气势派头的摩天大楼,那么不久之后天下著名的沈阳园林美景将不复存在。
上述这些关于“REST是什么”的形貌,可以总结为一句话:REST是所有Web应用都应该遵守的架构设计指导原则。固然,REST并不是执法,违反了REST的指导原则,仍然能够实现应用的功效。可是违反了REST的指导原则,会支付许多价格,特殊是对于大流量的网站而言。
“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与
我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。
热门文章
使用“扫一扫”即可将网页分享至朋友圈。