推送技术 push technology

推送技术 push technology


百度百科里对推送技术的描述太差了,完全是google翻译。今天我自己来翻译一遍push technology


Http server push

Http server push是一个从web server发送数据到web browser的机制。Http server push能够通过以下几种机制来达到。

大概说来,就是web browserweb server发起连接以后,web server不断开连接,而是继续把这个连接hold住。如果有web server这边有什么事情发生,就可以马上通过这条连接pushbrowser。如果没有这个连接,那么这些数据就进入发送队列,等待browser下一次发起request建立连接时,再pushbrowser。大多数的web server通过CGI来提供这种功能。


Pushlet

这种技术其实和上面的相似。Server这边将http的连接给永久化,保持不断开。也就是说当client/browser发起连接以后,这个连接就被server抓住不放了。TTP流,这种技术常常用在多媒体视频、通讯应用中,比如QuickTime。与装载HTTP页面之后马上关闭HTTP连接的做法相反,Pushlet采用HTTP流方式将新变动的数据主动地推送到client客户端),再此期间HTTP连接一直保持打开。有关如何在Java中实现这种Keep-alive长连接请参看Sun提供的《HTTP Persistent Connection》和W3C的《HTTP1.1规范》。


Long Polling

这是传统轮询技术的变种。在long polling中,client与普通轮询发出的请求类似。但是,区别在于,如果server目前没有有效的信息返回给client1. 传统轮询,将会返回一个empty response2. Long polling,将会hold the request(握住这个链接不放),等待直到有了有效的返回信息之后,再返回给client,同时断开链接。通常client会立即再次向server发出request,所以,server端和client端总是会有一个连接来传输数据。在AJAX中,long polling被称为Comet Programming




参考:http://en.wikipedia.org/wiki/Push_technology


原文地址:https://www.cnblogs.com/hengli/p/2842079.html