推送技术

GimmeS 2012-02-17

 推送技术(来源于百度文库)

PushTechnology

在客户机/服务器的应用程序中,推技术能够向客户机传送数据而无需其发出请求,例如发送电子邮件。相比较而言,万维网却是基于拉技术(PullTechnology),因此客户机浏览器必须事先向网页发出请求,所需信息才能被传送过来。传播媒介都属于推技术的应用范畴,因为不管是否有人接收,他们的信息都照发不误。

编辑本段一般应用

推送服务通常是在事先表达喜好的信息。这就是所谓的发布/订阅模型。一个客户端可能“订阅”的各种信息“通道”。每当新的内容可以在这些渠道之一,服务器会推出的信息给用户。

同步会议和即时消息是推动服务的典型例子。邮件和聊天,有时文件推到了只要他们是由信息服务受到了用户。同行都分散的对等程序(如废物),并集中程序(如IRC或XMPP协议)允许推送文件,这意味着发送者发起数据传输,而不是接受者。

电邮也是一个推动系统:SMTP协议的基础上,它是一个推动协议(见PushMail)。不过,最后一步,从邮件服务器到桌面计算机通常使用的POP3或IMAP像拉协议。现代电子邮件客户端走这一步似乎瞬间通过反复投票的邮件服务器,经常检查新邮件了。IMAP协议包括IDLE命令,它允许服务器告诉客户端新邮件到达时。原来的黑莓是第一推技术流行的例子了在无线方面的电子邮件。

另一种普及型互联网推送技术为pointcast公司网络,该网络在1990年代获得了知名度。它传递新闻和股市数据。Netscape和微软自己的软件集成到它在浏览器大战的高度,但后来逐渐消失,并在与RSS(一拉技术)2000年代取代。

其他用途的Web应用,包括推动市场数据发布(股票行情),在线聊天/消息系统(网上聊天),拍卖,网上博彩和游戏,运动的结果,监测主机和传感器网络监控。

编辑本段技术

HTTP服务器推送(HTTPserverpush)

HTTP服务器推送(也称为HTTPstreaming)是一个从Web服务器发送数据到Web浏览器的机制。HTTP服务器推送可以通过几种机制来实现。

一般来说,Web服务器不响应终止后,已送达数据连接到客户端。该网站的服务器连接叶片等开放,如果接收到事件时,可以立即被发送到一个或多个客户端。否则数据将被排队,直到客户端的下一个请求被接收。大多数Web服务器通过CGI提供这一功能(例如非解析头在Apache脚本)。

另一种机制是与一种特殊的MIME类型,称为多重/的X-混合取代,这是由Netscape在1995年。Web浏览器将其解释为改变每当服务器就像推一个新版本的文件到客户端感受到这一点。它仍然支持由Firefox,Opera和Safari的今天,但传统上由微软忽略。可以应用到HTML文件,也为串流影像的摄像头应用。

1.0Web应用程序的WHATWG建议包括一种机制来推送内容给客户端。9月1日,2006年,Opera网络浏览器执行了这项新的实验技术的功能称为“服务器发送的事件。”人们现在正作为HTML5的一部分规范化。另一个HTML5的相关部分是WebSocketsAPI,它允许Web服务器和客户端通信通过一个全双工TCP连接。

Javapushlet

原本是一个pushlet开发JavaWeb应用程序,虽然同样的技术可以在其他web框架,以及聘请的技术。在这种技术中,服务器需要持久HTTP连接响应的优势,永远离开了“开放”(即它永远不会终止反应),将有效地愚弄“装入”模式继续浏览器的初始页面加载后,通常是完整的。然后,服务器发送的JavaScript片段定期更新网页内容,从而实现推动能力。通过使用这一技术并不需要在客户端的Java小应用程序或其他插件保持开放的连接到服务器。该客户端将自动通知由服务器推向新的事件。一个严重的缺点,这种方法,然而,缺乏控制在浏览器中的服务器超时。一个页面刷新总是必要的,如果在浏览器上超时结束时发生。

Longpolling

Longpolling是一种传统的轮询技术的变化,并允许一个信息推送仿真从服务器到客户端。随着Longpolling,客户端请求从一个类似的方式到正常的投票服务器的信息。但是,如果服务器没有发送一空,而不是任何反应为客户提供的信息,服务器保存请求,并等待一些信息可用。一旦信息变得可用(或之后一个合适的超时),一个完整的响应被发送到客户端。然后,客户端通常会立即重新从服务器请求信息,因此服务器将几乎总是有一个可用的等待请求,它可以使用,以期在响应事件的数据。在web/AJAX的背景下,Longpolling也被称为Cometprogramming。

Longpolling本身并不是一种推送技术,但可以根据实际情况推动使用。

FlashXMLSocketrelay

这种技术是由Cbox等聊天应用,使得XMLSocket对象使用一个单像素的AdobeFlash电影。在JavaScript的控制,客户端建立一个服务器上的一个单向传递TCP连接。中继服务器不读取这个插座什么,而是立即向客户机发送一个唯一的标识符。接下来,客户端发出一个HTTP请求到Web服务器,包括它这个标识符。Web应用程序可以然后推给了继电器的服务器,它在闪光灯插座继电器他们的本地接口的客户端的消息。这种方法的优点是它赞赏自然读写不对称,是许多Web应用程序,包括聊天典型,因此它提供了高效率。由于它不接受即将离任的插座上的数据,中继服务器不需要轮询都传出TCP连接,从而能够容纳数千的并发连接打开数万。在此模型中,规模限制是TCP协议栈底层的服务器操作系统。

其它技术

Comet一词已被用于描述应用到Ajax的Web应用程序推技术。这是用于Web技术的结合,如HTTP服务器推送和Longpolling(见上文)作为总称。

XMPP是通常用于推送应用程序以及,特别是PubSub的扩展。苹果公司使用其移动我推支持这项技术。

波什是一项长期的HTTP技术在XMPP使用,但可以在网络上使用。该规范(XEP-0124:双向,在同步的HTTP(波什)流)条规定:本规范定义了一个传输协议,它模仿了一个长寿命,双向两个实体之间的TCP(如客户端和服务器)连接的语义通过有效地使用,而不需要频繁轮询或使用多个分块同步响应HTTP请求/响应对。

扩展阅读:http://blog.csdn.net/historyasamirror/archive/2010/02/22/5316488.aspx

相关推荐