打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
REST架构概述 | Java |Life吧

何为REST?


REST是英文Representational State Transfer的缩写,中文翻译为“表述性状态转移”。

Rest是设计基于命名资源而非消息的松耦合应用程序,例如:以 Uniform Resource Locators(URL)、Uniform Resource Identifiers(URI)和 Uniform Resource Names(URN)的形式 — 而非消息的松耦合 Web 应用程序的一种风格。

REST巧妙地借助已经验证过的成功的Web基础设施 — HTTP。Web上所有的东西(页面、图像等)本质上都是资源。而 REST 正是基于命名资源而非消息的,这就限制了底层技术的曝光,从而给应用程序设计中的松耦合提供了便利条件。REST 的魅力在于任何东西都可以成为资源,且表示方法也可以不同。

REST优势

REST改善了用户接口跨多个平台的可移植性,并且通过简化服务器组件,改善了系统的可伸缩性。最为关键的是通过分离用户接口和数据存储这两个关注点,使得不同用户终端享受相同数据成为了可能。

无状态性

无状态性是在客户-服务器约束的基础上添加的又一层规范。他要求通信必须在本质上是无状态的,即从客户到服务器的每个request都必须包含理解该request所必须的所有信息。这个规范改善了系统的可见性(无状态性使得客户端和服务器端不必保存对方的详细信息,服务器只需要处理当前request,而不必了解所有的request历史),可靠性(无状态性减少了服务器从局部错误中恢复的任务量),可伸缩性(无状态性使得服务器端可以很容易的释放资源,因为服务器端不必在多个request中保存状态)。同时,这种规范的缺点也是显而易见得,由于不能将状态数据保存在服务器上的共享上下文中,因此增加了在一系列request中发送重复数据的开销,严重的降低了效率

缓存

为了改善无状态性带来的网络的低效性,我们填加了缓存约束。缓存约束允许隐式或显式地标记一个response中的数据,这样就赋予了客户端缓存response数据的功能,这样就可以为以后的request共用缓存的数据,部分或全部的消除一部分交互,增加了网络的效率。但是用于客户端缓存了信息,也就同时增加了客户端与服务器数据不一致的可能,从而降低了可靠性。

B/S架构的优点是其部署非常方便,但在用户体验方面却不是很理想。为了改善这种情况,我们引入了REST. REST在原有的架构上增加了三个新规范:统一接口,分层系统和按需代码。

REST规范接口


每个资源都有对应的URI,不同的HTTP Method对应的对资源不同的操作,GET(读取资源信息)、POST(添加资源)、PUT(更新资源信息)、DELETE(删除资源)。几乎所有的计算机语言都可以通过HTTP协议同REST服务器通信。

REST应用

目前国内外流行的Web 2.0应用API接口中,很多都支持REST架构风格。例如:新浪微博开放平台人人网API、Google OpenID、Flickr、Twitter、eBay、Facebook、Last.fm、del.icio.us、Yahoo Search、Amazon S3、Amazon EC2、Digg、Microsoft Bing、FriendFeed、PayPal、Foursquare,更多...

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
{定义介绍}什么是REST
什么是REST?这篇文章告诉你答案
RESTful Web Service 架构剖析
Ajax 和 REST,第 1 部分
理解本真的REST架构风格
REST 架构风格的由来 & 元素
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服