推送技術

推送技術

g)是一個從Web伺服器發送數據到Web瀏覽器的機制。一般來說,Web伺服器不響應終止后,已送達數據連接到客戶端。這是用於Web技術的結合,如HTTP伺服器推送和Lon

正文


推送技術
Push Technology [puʃ tɛk'nɑlədʒɪ]
在客戶機/伺服器的應用程序中,推送技術能夠向客戶機傳送數據而無需其發出請求,例如發送電子郵件。相比較而言,萬維網卻是基於拉技術(Pull Technology),因此客戶機瀏覽器必須事先向網頁發出請求,所需信息才能被傳送過來。傳播媒介都屬於推技術的應用範疇,因為不管是否有人接收,他們的信息都照發不誤。

一般應用


推送服務通常是在事先表達喜好的信息。這就是所謂的發布/訂閱模型。一個客戶端可能“訂閱”的各種信息“通道”。每當新的內容可以在這些渠道之一,伺服器會推出的信息給用戶。
同步會議和即時消息是推動服務的典型例子。郵件和聊天,有時文件推到了只要他們是由信息服務受到了用戶。同行都分散的對等程序(如廢物),並集中程序(如IRCXMPP協議)允許推送文件,這意味著發送者發起數據傳輸,而不是接受者。
電郵也是一個推動系統:SMTP協議的基礎上,它是一個推動協議(見PushMail)。不過,最後一步,從郵件伺服器到桌面計算機通常使用的POP3IMAP像拉協議。現代電子郵件客戶端走這一步似乎瞬間通過反覆投票的郵件伺服器,經常檢查新郵件了。 IMAP協議包括IDLE命令,它允許伺服器告訴客戶端新郵件到達時。原來的黑莓是第一推技術流行的例子了在無線方面的電子郵件。
另一種普及型網際網路推送技術為pointcast公司網路,該網路在1990年代獲得了知名度。它傳遞新聞和股市數據。 Netscape和微軟自己的軟體集成到它在瀏覽器大戰的高度,但後來逐漸消失,並在與RSS(一拉技術)2000年代取代。
其他用途的Web應用,包括推動市場數據發布(股票行情),在線聊天/消息系統(網上聊天),拍賣,網上博彩和遊戲,運動的結果,監測主機和感測器網路監控。

技術


HTTP伺服器推送(HTTP server push)
HTTP伺服器推送(也稱為HTTP streaming)是一個從Web伺服器發送數據到Web瀏覽器的機制。 HTTP伺服器推送可以通過幾種機制來實現。
一般來說,Web伺服器不響應終止后,已送達數據連接到客戶端。該網站的伺服器連接葉片等開放,如果接收到事件時,可以立即被發送到一個或多個客戶端。否則數據將被排隊,直到客戶端的下一個請求被接收。大多數Web伺服器通過CGI提供這一功能(例如非解析頭在Apache腳本)。
另一種機制是與一種特殊的MIME類型,稱為多重/的X -混合取代,這是由Netscape在1995年。 Web瀏覽器將其解釋為改變每當伺服器就像推一個新版本的文件到客戶端感受到這一點。它仍然支持由Firefox,OperaSafari的今天,但傳統上由微軟忽略。可以應用到HTML文件,也為串流影像的攝像頭應用。
1.0 Web應用程序的WHATWG建議包括一種機制來推送內容給客戶端。 9月1日,2006年,Opera網路瀏覽器執行了這項新的實驗技術的功能稱為“伺服器發送的事件。”人們現在正作為HTML5的一部分規範化。另一個HTML5的相關部分是WebSockets API,它允許Web伺服器和客戶端通信通過一個全雙工TCP連接。
Java pushlet
原本是一個pushlet開發Java Web應用程序,雖然同樣的技術可以在其他web框架,以及聘請的技術。在這種技術中,伺服器需要持久HTTP連接響應的優勢,永遠離開了“開放”(即它永遠不會終止反應),將有效地愚弄“裝入”模式繼續瀏覽器的初始頁面載入后,通常是完整的。然後,伺服器發送的JavaScript片段定期更新網頁內容,從而實現推動能力。通過使用這一技術並不需要在客戶端的Java小應用程序或其他插件保持開放的連接到伺服器。該客戶端將自動通知由伺服器推向新的事件。一個嚴重的缺點,這種方法,然而,缺乏控制在瀏覽器中的伺服器超時。一個頁面刷新總是必要的,如果在瀏覽器上超時結束時發生。
Long polling
Long polling是一種傳統的輪詢技術的變化,並允許一個信息推送模擬從伺服器到客戶端。隨著Long polling,客戶端請求從一個類似的方式到正常的投票伺服器的信息。但是,如果伺服器沒有發送一空,而不是任何反應為客戶提供的信息,伺服器保存請求,並等待一些信息可用。一旦信息變得可用(或之後一個合適的超時),一個完整的響應被發送到客戶端。然後,客戶端通常會立即重新從伺服器請求信息,因此伺服器將幾乎總是有一個可用的等待請求,它可以使用,以期在響應事件的數據。在web / AJAX的背景下,Long polling也被稱為Comet programming。
Long polling本身並不是一種推送技術,但可以根據實際情況推動使用。
Flash XMLSocket relay
這種技術是由cbox等聊天應用,使得XMLSocket對象使用一個單像素的Adobe Flash電影。在JavaScript的控制,客戶端建立一個伺服器上的一個單向傳遞TCP連接。中繼伺服器不讀取這個插座什麼,而是立即向客戶機發送一個唯一的標識符。接下來,客戶端發出一個HTTP請求到Web伺服器,包括它這個標識符。 Web應用程序可以然後推給了繼電器的伺服器,它在閃光燈插座繼電器他們的本地介面的客戶端的消息。這種方法的優點是它讚賞自然讀寫不對稱,是許多Web應用程序,包括聊天典型,因此它提供了高效率。由於它不接受即將離任的插座上的數據,中繼伺服器不需要輪詢都傳出TCP連接,從而能夠容納數千的併發連接打開數萬。在此模型中,規模限制是TCP協議棧底層的伺服器操作系統。
其它技術
Comet一詞已被用於描述應用到Ajax的Web應用程序推技術。這是用於Web技術的結合,如HTTP伺服器推送和Long polling(見上文)作為總稱。
XMPP是通常用於推送應用程序以及,特別是PubSub的擴展。蘋果公司使用其移動我推支持這項技術。
波什是一項長期的HTTP技術在XMPP使用,但可以在網路上使用。該規範(XEP - 0124:雙向,在同步的HTTP(波什)流)條規定:本規範定義了一個傳輸協議,它模仿了一個長壽命,雙向兩個實體之間的TCP(如客戶端和伺服器)連接的語義通過有效地使用,而不需要頻繁輪詢或使用多個分塊同步響應HTTP請求/響應對。