Ajax、Comet、HTML 5 Web Sockets技术比较分析
Source:http://www.infoq.com/cn/news/2008/12/websockets-vs-comet-ajax
九十年代中期,WWW以迅猛之势转眼跻身传播信息的主要渠道之一。浏览器的身影开始无处不在,用户也随之开始适应这种信息传播方式。显然,WWW提
供的应用平台能够赢得历史上任何一个平台都无法比及的用户量。但当时很难实现这样的目标是因为一些标准(HTML、HTTP等)都不很完善,这些标准设计
的时候都没有考虑到高度交互和富客户体验。最初的一些富在线应用基本上都是由Microsoft
Exchange开发组实现的。96年以来,他们曾采用IFrame为邮件服务器系统提供Outlook类型的前端应用。这些早期尝试在响应能力和整体的
用户体验方面都非常落后,但从这些应用身上却可以清楚地看到即将兴起的网络应用。1998年,团队开始为MS Exchange Server
2000编写web前端,他们开发了XMLHTTP,这个控件实现了单个web页面与服务器间的异步交互。可以看到,XMLHTTP实际上根本没有立即和
XML捆绑起来。XMLHTTP这个名字是Alex
Hopmann提出的,他是后来加入开发团队的,据说名字采用这个前缀的唯一的原因是IE5当时正在准备第二个beta版本,而这个控件必须作为这个版本
的MSXML库的一部分发布,这才冠上了XML。
Mozilla基金会在2002年开发他们的浏览器的一个版本时,也以XMLHttpRequest的形式实现这一新技术,这个浏览器就是后来的
Firefox。尽管当时有一些商家也曾尝试运用这些新API,但他们采用的的这种远程脚本程序的模式一直没有引起公众的注意,直到Google开始部署
基于JavaScript和XHR的一系列新型服务。当时的第一个服务是2005年2月8日Google Blog上发布的Google
Maps。之后不久,XHR就一跃成为业界最炙手可热的话题。直到那时,也还没人预料到XHR给Web应用开发带来的革命性的推动,但它的成功开始让我们
转变之前对WWW的一些看法。
在Kaazing Gateway
发布之际,InfoQ采访了Richard Smith,谈到关于AJAX
, Comet
以及蒸蒸日上的HTML 5 Web Sockets
等技术的发展情况:
Ajax为HTTP通信模型提供了很好的解决方案,它在客户端异步轮询服务器端事件。服务器事件依次排列在待处理队列中,根据轮询时间隙依次传送到
浏览器,这样模拟服务器发起的通信,在轮询时间隙间进行实时消息传递。因此,仅仅依靠Ajax,我们永远都不可能实现真正的实时通信。
Comet引入的优化针对的是HTTP通信初始之时,它在HTTP基础上采用“push”通信风格。Comet提供的几项技术能够在没有客户端发送
请求的前提下让服务器主动将信息发送到浏览器。如果再增加一个额外的HTTP连接的话,Comet甚至可以在两个HTTP连接上实现双向通信。但
Comet的绊脚石在于各个浏览器提供商对XHR、iFrames——这两种实现Comet所需的数据块的支持程度不尽相同,没有统一的实现标准。另外,
无论是从网络还是开发角度来看,Comet管理两个连接的开销都很大。这些开销带来的直接影响就是Comet应用中的传输延时,限制了它们所提供的实时通
信的精确性。
HTML 5 WebSocket代表的是Comet和Ajax推进HTTP通信新一轮的尝试。HTML 5
WebSocket规范中定义,在浏览器和服务器之间采用单socket全双工(或者叫双向)传输来push和pull信息。这不但可以避免Comet中
存在的连接和可移植问题,还能够提供比Ajax轮询更高效的解决方案。目前,HTML 5 WebSocket是推动web全双工实时通信的主要机制。
分享到:
相关推荐
总结来说,"web推送 Comet技术"利用了Comet4J框架和Tomcat7服务器,实现在Web应用中的实时数据推送。它挑战了传统的HTTP交互方式,提升了用户体验,但同时也带来了额外的系统管理和优化挑战。在开发过程中,理解...
comet两种实现之一的ajax实现,内部有源代码,这是一个聊天室的例子
XMLHttpRequest对象在Ajax技术中扮演着核心角色,它允许前端与...然而,随着Web技术的发展,WebSocket等现代协议已经提供了更强大、更标准的实时通信支持,它们在许多方面超越了Ajax和Comet,成为了现代Web开发的首选。
**Asp.net Comet(Web)技术** Comet技术在IT领域中扮演着独特角色,它是一种颠覆传统HTTP请求-响应模式的Web应用开发方法。在传统的HTTP交互中,客户端(浏览器)向服务器发送请求,服务器处理请求并返回响应,...
comet-ajax聊天comet-ajax聊天comet-ajax聊天comet-ajax聊天comet-ajax聊天comet-ajax聊天comet-ajax聊天comet-ajax聊天comet-ajax聊天
Comet技术与Ajax技术在Web开发中的应用 Comet技术和Ajax技术都是Web应用程序中实现实时交互的重要手段,它们改变了传统的HTTP请求-响应模式,提升了Web应用的用户体验。在这篇文章中,我们将深入探讨这两种技术,...
传统Web模式和Ajax模式虽然都解决了一部分问题,然而也都存在着一定的缺陷,Comet技术则较好地解决了传统Web模式和Ajax技术中存在的不足。介绍了Comet技术的相关原理及实现,并运用该技术对一个简单无刷新聊天室进行了...
Comet技术是Java Web实时系统开发中的关键技术之一,它通过实现服务器推送(Server Push)来解决AJAX需要定时频繁发送请求的问题。Comet技术有两种实现方式:长轮询方式(Long Pollling)和流方式(Streaming)。 ...
Comet 有时也称反向 Ajax 或服务器端推技术(server-side push)。其思想很简单:将数据直接从服务器推到浏览器,而不必等到浏览器请求数据。听起来简单,但是如果熟悉 Web 应用程序,尤其是 HTTP 协议,那么您就会...
这里提到的"C#Web即时通讯Comet框架"可能是一个特定的开源项目,它对Comet技术进行了封装,允许开发者更方便地实现Web即时通讯功能。 **自定义扩展** 该框架的一大特点是允许对发送的结果进行自定义扩展。这意味着...
ASP.NET Comet是一个技术概念,它涉及到了Web应用程序中的实时通信,特别是服务器向客户端推送数据的能力。在传统的HTTP协议中,服务器通常在客户端发起请求时才响应,而在Comet模式下,服务器可以保持一个连接开放...
面向Java开发人员的Ajax技术,特别是与Jetty服务器和Direct Web Remoting (DWR)框架的结合,为创建高性能、可扩展的Comet应用程序提供了强大的工具。Comet是一种Web交互模式,它允许服务器向客户端推送数据,而不...
Comet技术是一种基于HTTP长连接的反向Ajax技术,它允许服务器向客户端浏览器主动推送数据,从而实现双向通信。在Web应用中,通常的HTTP请求是客户端发起的,而Comet打破了这种模式,使得服务器可以在适当的时候主动...
目前,比较多的处理方案是采用AJAX或Flash技术,但是这两种技术方法或者代码过于复杂,或者需要安装插件,并不是较为理想的处理技术。 因此,本文采用Comet技术和Java的反射技术,实现了Java Web实时进度条的处理...
**Ajax技术在Web聊天程序中的应用** Ajax(Asynchronous JavaScript and XML)是一种在不重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,极大地...
Comet是一种Web应用程序技术,主要用于实现实时的、双向的通信。它打破了传统的HTTP协议的请求-响应模型,使得服务器可以主动向客户端推送数据,而不仅仅是响应客户端的请求。这种技术在实时聊天、股票更新、在线...
AJAX(Asynchronous JavaScript and XML)是Comet技术出现之前的一种常见解决方案,它允许Web页面在不刷新整个页面的情况下与服务器进行异步通信。AJAX通过XMLHttpRequest对象实现局部更新,提高了用户体验,但仍然...
Web QQ是腾讯公司推出的一款基于Ajax技术实现的网页版即时通讯工具,它允许用户在无需安装客户端软件的情况下,通过浏览器就能进行QQ聊天、发送文件、查看好友动态等操作。Ajax,全称Asynchronous JavaScript and ...
例如,Atmosphere、Jetty Continuations和Ajax Push Engine等,都是Comet技术的优秀实践工具。 【压缩包子文件的文件名称列表】:telephone.mp3 在提供的文件列表中,"telephone.mp3"可能是一个与Comet技术无关的...