加载中 ...
首页 > 新闻资讯 > 经验心得 正文

理解本真的REST架构风格

2019-03-23 07:29:26 来源:沈阳软件公司 作者:沈阳软件开发

引子

  在移动互联网、云盘算迅猛生长的今天,作为一名Web开发者,若是您还没听说过“REST”这个buzzword,显然已经落伍了。夸张点说,甚至“出了门都欠好意思跟别人打招呼”。只管云云,对于REST这个泊来品的明白,大多数人(包罗一些资深的架构师)仍然停留在“瞽者摸象”的阶段。经常听到种种各样关于REST的说法,例如:有人说:“我们这套新的API决议不用Web Service(SOAP+WSDL),而是直接使用HTTP+JSON,也就是用RESTful的方式来开发。”

  不用SOAP,甚至也不用XML,就自动酿成了RESTful了。另有人以为:REST与传统的Web Service实在没有本质区别,只是对于URI的结构方式提出了更多要求,而这些要求Web Service完全都可以实现。潜台词是:既生瑜,何生亮。Web Service已经足够好了,干嘛还要再折腾什么REST。这些对于REST的差别说法,果真云云吗?REST事实是什么?是一种新的手艺、一种新的架构、照旧一种新的规范?

  对于这些问题笔者先不解答,为了深入明白REST是什么,我们需要回首一下Web生长的最初年月,从源头上讲讲REST是怎么得来的。

  Web手艺生长与REST的由来

  Web(万维网World Wide Web的简称)是个应有尽有的万花筒,差别的人从差别的角度视察,对于Web事实是什么会得出大不相同的看法。作为Web开发者,我们需要从手艺上来明白Web。从手艺架构层面上看,Web的手艺架构包罗了四个基石:

URIHTTPHyperText(除了HTML外,也可以是带有超链接的XML或JSON)MIME

  这四个基石相互支持,促使Web这座雄伟的大厦以几何级数的速率生长了起来。在这四个基石之上,Web开发手艺的生长可以大略划分成以下几个阶段:

    静态内容阶段:在这个最初的阶段,使用Web的主要是一些研究机构。Web由大量的静态HTML文档组成,其中大多是一些学术论文。Web服务器可以被看作是支持超文本的共享文件服务器。CGI程序阶段:在这个阶段,Web服务器增添了一些编程API。通过这些API编写的应用程序,可以向客户端提供一些动态转变的内容。Web服务器与应用程序之间的通讯,通过CGI(Common Gateway Interface)协议完成,应用程序被称作CGI程序。剧本语言阶段:在这个阶段,服务器端泛起了ASP、PHP、JSP、ColdFusion等支持Session的剧本语言手艺,浏览器端泛起了Java Applet、JavaScript等手艺。使用这些手艺,可以提供越发富厚的动态内容。瘦客户端应用阶段:在这个阶段,在服务器端泛起了自力于Web服务器的应用服务器。同时泛起了Web MVC开发模式,种种Web MVC开发框架逐渐盛行,而且占有了统治职位。基于这些框架开发的Web应用,通常都是瘦客户端应用,由于它们是在服务器端天生所有的动态内容。RIA应用阶段:在这个阶段,泛起了多种RIA(Rich Internet Application)手艺,大幅改善了Web应用的用户体验。应用最为普遍的RIA手艺是DHTML+Ajax。Ajax手艺支持在不刷新页面的情形下动态更新页面中的局部内容。同时降生了大量的Web前端DHTML开发库,例如Prototype、Dojo、ExtJS、jQuery/jQuery UI等等,许多开发库都支持单页面应用(Single Page Application)的开发。其他的RIA手艺另有Adobe公司的Flex、微软公司的Silverlight、Sun公司的JavaFX(现在为Oracle公司所有)等等。移动Web应用阶段:在这个阶段,泛起了大量面向移动装备的Web应用开发手艺。除了Android、iOS、Windows Phone等操作系统平台原生的开发手艺之外,基于HTML5的开发手艺也变得很是盛行。

  从上述Web开发手艺的生长历程看,Web从最初其设计者所构想的主要支持静态文档的阶段,逐渐变得越来越动态化。Web应用的交互模式,变得越来越庞大:从静态文档生长到以内容为主的门户网站、电子商务网站、搜索引擎、社交网站,再到以娱乐为主的大型多人在线游戏、手机游戏。

  在互联网行业,实践总是走在理论的前面。Web生长到了1995年,在CGI、ASP等手艺泛起之后,沿用了多年、主要面向静态文档的HTTP/1.0协议已经无法知足Web应用的开发需求,因此需要设计新版本的HTTP协议。在HTTP/1.0协议专家组之中,有一位年轻人脱颖而出,显示出了非凡的洞察力,厥后他成为了HTTP/1.1协议专家组的卖力人。这位年轻人就是Apache HTTP服务器的焦点开发者Roy Fielding,他照旧Apache软件基金会的互助首创人。

  Roy Fielding和他的同事们在HTTP/1.1协议的设计事情中,对于Web之以是取得庞大乐成,在手艺架构方面的因素做了一番深入的总结。Fielding将这些总笼络入到了一套理论框架之中,然后使用这套理论框架中的指导原则,来指导HTTP/1.1协议的设计偏向。HTTP/1.1协议的第一个草稿是在1996年1月公布的,经由了三年多时间的修订,于1999年6月成为了IETF的正式规范(包罗了RFC 2616以及用于对客户端做身份认证的RFC 2617)。

“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与

我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。