Web端服务器推送技术原理分析
1 背景 “ 服务器推送技术” ( Server Pushing )是最近 Web 技术中最热门的一个流行术语。它是继“ Ajax ” 之后又一个倍受追捧的 Web 技术。“ 服务器推送技术”最近的流行跟“ Ajax ” 有着密切的关系。 随着 Ajax 技术的兴起,让广大开发人员又一次看到了使用浏览器来替代桌面应用的机会,并且这次机会非常大。 Ajax 将整个页面的刷新变成页面局部的刷新,并且数据的传送是以异步方式进行,这使得网络延迟带来的视觉差异将会消失。 但是,在浏览器中的 Ajax 应用中存在一个致命的缺陷无法满足传统桌面系统的需求。那就是“ 服务器发起的消息传递”( Server-Initiated Message Delivery )。在很多的应用当中,服务器软件需要向客户端主动发送消息或信息。因为服务器掌握着系统的主要资源,能够最先获得系统的状态变化和事件的发生。当这些变化发生的时候,服务器需要主动的向客户端实时的发送消息。例如股票的变化。在传统的桌面系统这种需求没有任何问题,因为客户端和服务器之间通常存在着持久的连接,这个连接可以双向传递各种数据。而基于 HTTP 协议的 Web 应用却不行。 2 客户端得到通知的方式 我们知道, Web 的访问机制天生是设计用来 pull 数据的 ,也就是只允许 Browser 端主动发起请求, server 是被动的响应,不允许