您的位置:首页 > 业界新闻

为什么Rest的出现影响今天的互联网,以及Web的发展历程

2016-01-07 14:13 811 查看
1.1  从胖客户端到瘦客户端

胖客户端指的是C/S架构中的Client。C/S时期是以Windows为代表的桌面应用时代。Java领域的Applet是这个时期的后起之秀,并成为引领C/S时期专项B/S。胖客户端明显的缺点是必须安装到客户端本地。我们为什么要让客户端做那么多事情呢?把它交给服务器吧。在Java领域,以Servlet和JSP为基础的瘦客户端开发逐渐成熟,Struts带来了MVC,Spring带来了Ioc和AOP,Hibernate带来了O/R-Mapping,“瘦小”的前端也引入了模板,标签等技术。

1.2  从瘦客户端到富客户端

时至今日,B/S仍然流行,但B/S结构并没有停留在开始的瘦客户端阶段。由于HTTP是无状态的,Session成为了服务器必要的“累赘”,用户的每一次交互都要交由服务器处理,甚至是验证输入框信息这么小的一个交互,这期间的时延带来的用户体验非常糟糕。时代的选择是让客户端“富”起来。AJAX的出现时这个阶段比较成功的代表。异步请求和DOM的动态改写带来了页面的局部舒心,Dojo和jquery为代表的Java Script库为客户端带来了丰富的组建和皮肤风格,良好的用户体验和更为轻松的愉快的开发过程让“富”起来的客户端活力四射。虽然富客户端的美学因素十分惬意,但跨浏览器开发中,样式和事件的调试和测试是极其专业的事情。从这时期开始,前端开发的技术含量逐日增加。另一个代表是JSF。JSF是java领域的一个标准,采用浏览器端的事件驱动的机制,它吸收了Spring和Ajax的精华,是Java领域中最具ASP.NET风范的技术框架。其全栈式的开发框架和组件的生命周期模式使得富客户端开发变得快速一致。需要提及的是XHTML在JSF领域得到了重视和推动。JSF缺点是不够轻量,入门起点高,广泛不如Spring。还有一组代表是JavaFX,Flex。以及微软公司的Silverlight这样的技术。富客户端时期并没有结束,由于市场原因,对开发团队和开发者来说,也许会考虑其投资回报率和风险。

1.3  从富客户端到平庸客户端

“平庸”的纯HTML网页可以做的事情主要是通过HTML标签来展示数据。纯HTML+AJAX的功能是发出HTTP请求并局部刷新页面,展示服务器返回的数据。这样的客户端在REST之前,似乎太有局限性,我们必须引用脚本语言(ASP,PHP,JSP等)来“壮大”客户端。而有了REST,这种平庸的客户端就可以完成更多的业务逻辑功能。因为REST式的Web服务公布的就是简单的HTTP请求。这看似变弱的变化,有什么意义呢?平庸的客户端带来的是一个Web发展的新时期。这个时期,客户端不仅是平台无关的,而且是语言无关的,这样的客户端可以实现对任何一种变成语言实现的REST服务器的请求。解耦是平庸客户端最明显的优势。松散的耦合使开发难度降低,系统的水平扩展能力增强。从代码的耦合上看,纯HTML的客户端开发并不关心服务器端使用的是哪一种语言,唯一需要和服务器端交互的是REST接口,其开发成本大大降低。从部署上看,纯HTML的客户端是静态页面,可以部署在Nginx为代表的HTTP服务器上,有效的降低应用服务器的负载。

 

我们所关注的不局限于Web页面如何解读复杂业务,而是关注服务器和客户端之间如何快速通信,快速响应。AJAX不是终点,它虽然解决了客户端异步请求问题,但网络IO依然是阻塞的,下一个主题回事什么呢?相信会覆盖HTML5以及与之并行的服务器推送技术和服务器异步,非阻塞IO。于此同时,平庸的客户端也会出现新的特性,尤其是作为配合服务器新特性的展示层,比如Web Socket以及与之并行的Server Push Taglib,JS库的Comet支持。在基于Jersey的实现中,REST风格的应用已经具备了异步处理请求,非阻塞式读写,动静分离等特征。同时,可以很好地与Web
Socket,SSE等HTML5特征协同工作。

         
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: