HTTP服务器端常用推送技术
生活随笔
收集整理的這篇文章主要介紹了
HTTP服务器端常用推送技术
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
服務器端推送技術描述
不論是傳統的HTTP請求-響應式的通信模式, 還是異步的AJAX式請求, 服務器端始終處于被動的應答狀態, 只有在客戶端發出請求的情況下, 服務器端才會返回響應。 這種通信模式被稱為客戶端拉取(client pull) 。 在這種模式下, 用戶只能通過刷新頁面或主動單擊加載按鈕來拉取新數據。
然而, 在某些場景下, 我們需要的通信模式是服務器端的主動推送(server push) 。 比如, 一個聊天室有很多個用戶, 當某個用戶發送消息后, 服務器接收到這個請求, 然后把消息推送給聊天室的所有用戶。類似這種關注實時性的情況還有很多, 比如社交網站在導航欄實時顯示
新提醒和私信的數量, 用戶的在線狀態更新, 股價行情監控、 顯示商品庫存信息、 多人游戲、 文檔協作等。
實現服務器端推送的一系列技術被合稱為HTTP Server Push(HTTP服務器端推送)
常用推送技術
- **傳統輪詢:**在特定的時間間隔內,客戶端使用AJAX技術不斷的向服務器發HTTP請求,然后獲取新的數據并更新頁面
- **長輪詢:**和傳統輪詢類似,但是如果服務器端沒有返回數據,那就保持連接一直開啟,直到有數據時才返回。取回數據后再次發送另一個請求
- Server-Sent Events(SSE): SSE通過HTML5中的EventSource API實現。SSE會在客戶端和服務器端建立一個單向的通道,客戶端監聽來自服務器端的數據,而服務器端可以在任意時間發送數據,兩者建立類似訂閱/發布的通信模式。
簡單對比
輪詢(polling) 這類使用AJAX技術模擬服務器端推送的方法實現起來比較簡單, 但通常會造成服務器資源上的浪費, 增加服務器的負擔, 而且會讓用戶的設備耗費更多的電量(頻繁地發起異步請求) 。SSE效率更高, 在瀏覽器的兼容性方面, 除了Windows IE/Edge, SSE基本上支持所有主流瀏覽器, 但瀏覽器通常會限制標簽頁的連接數量。
總結
以上是生活随笔為你收集整理的HTTP服务器端常用推送技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过聚合数据API获取微信精选文章
- 下一篇: 中信银行总行信息科技部笔试面试以及最后拿