亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        WebSocket:讓Web更實時

        2012-04-29 00:00:00
        CHIP新電腦 2012年6期

        聊天、讀新聞、查股票行情、玩游戲……我們總是希望在瀏覽器中可以直接運行各種應用程序、完成各種復雜的任務,而不必添加額外的瀏覽器插件。這就需要Web應用程序能夠實時運行,但傳統(tǒng)的互聯(lián)網(wǎng)協(xié)議架構并不是為現(xiàn)在的富互聯(lián)網(wǎng)應用(RIA)設計的,因此開發(fā)者需要使用老架構實現(xiàn)新功能,這時難免會遇到許多問題。現(xiàn)代Web應用需要革新傳統(tǒng)C/S(客戶端/服務器)模式通訊的協(xié)議架構——從單向的HTTP問答模式升級到雙向的實時通訊模式。國際標準化組織W3C和IETF在2011年12月正式采納了WebSocket協(xié)議,從此Web應用不再需要冗雜的HTTP替代方案,就可以在WebSocket協(xié)議下更快速、更簡單地運行。

        HTTP是單行線

        為了通過網(wǎng)絡發(fā)送或者下載數(shù)據(jù),客戶端需要與服務器之間建立TCP連接。TCP連接是為保證在終端之間完成無損數(shù)據(jù)傳輸而設計的,使用IP地址和網(wǎng)絡端口進行配對。眾所周知,數(shù)據(jù)(信息)不僅需要被傳輸,還需要被理解,所以還必須用到一個運行在TCP傳輸層之上的應用層協(xié)議,從而實現(xiàn)客戶端和服務器之間的“通話”。在網(wǎng)站上,這個應用層協(xié)議主要就是HTTP協(xié)議。盡管TCP支持通過虛擬的透明傳輸層實現(xiàn)雙向數(shù)據(jù)傳輸,但是應用層的HTTP協(xié)議并不支持該選項。簡單地說,雙向數(shù)據(jù)傳輸意味著允許從服務器端發(fā)送推送信息到客戶端,這是現(xiàn)代Web應用程序的特性之一,但是“單向”的HTTP基于非常簡單的問答模型,客戶端發(fā)送“請求”,服務器端才會進行“回復”。這樣做不僅速度慢而且成本高。

        為了保證用戶不需要頻繁地按下更新按鈕,程序員們想到了一些變通的方法,從而能夠通過HTTP協(xié)議“巧妙”地實現(xiàn)即時通訊。其中最簡單常用的一種方法是輪詢(Polling),也就是瀏覽器端的腳本代碼根據(jù)設定好的頻率向服務器“詢問”有沒有新事件。輪詢需要為每個請求建立一個新的連接,得到“回復”之后,服務器就會中斷連接。如此一來就會花費更多的時間,而且頻繁地新建TCP連接也會增加通信量,從而導致線路開銷和網(wǎng)絡負載倍增。另一種變通方案——長輪詢(Long Polling)比輪詢更先進一些,因為它可以等待服務器端有新的事件時才返回“通知”,縮短了可能會出現(xiàn)的通知延遲(Latency),讓消息傳輸更及時,但并這沒有完全解決網(wǎng)絡負載大的問題。

        HTTP streaming是變通方案中最好的一個,它可以長時間保持連接不斷開,同時在后臺實現(xiàn)與服務器按照不規(guī)則的順序交換數(shù)據(jù)(無需刷新頁面)。不過缺點是需要大量運用JavaScript對象XMLHttpRequest,該腳本在不同瀏覽器中的實現(xiàn)效果并不相同,而且它總是需要兩個HTTP連接才能完成實時雙向通訊。

        快速高效的WebSocket

        WebSocket協(xié)議通過建立套接層(Socket)解決以上替代方案出現(xiàn)的問題,該套接層可以通過IP地址和端口永久地維持客戶端與服務器之間的信道,這樣兩端就可以在一個連接中同時完成雙向的通訊,而不需要頻繁地發(fā)送“請求”。在HTTP握手建立連接時有一個幾乎已經被忘記的功能——“協(xié)議協(xié)商升級”(upgrade)。WebSocket現(xiàn)在將“協(xié)議協(xié)商升級”重新引入,通過HTTP握手完成應用層協(xié)議的升級。然后瀏覽器就可以調用WebSocket API,而不是JavaScript對象。是否啟用了WebSocket連接可以通過瀏覽器地址欄中的統(tǒng)一資源標識符(URI)“ws://”和“wss://”(WebSocket安全協(xié)議)進行識別。

        為了確保只有獲得允許的WebSocket終端之間才能進行通訊,開發(fā)者在HTTP協(xié)議頭部增加了一些安全機制:客戶端在請求中生成一個基本的Base64編碼安全密鑰,服務器收到該密鑰之后對其進行SHA-1加密,然后再返回給客戶端。從而避免WebSocket服務器遭遇未知源的惡意攻擊,保證只有已知的或者可信的客戶端才可以建立連接。

        另一個重要的保護機制出現(xiàn)在HTTP握手之后:WebSocket客戶端必須通過簡單的異或運算模板加密每一個數(shù)據(jù)包,防止互相連接的代理服務器將WebSocket連接誤認為成HTTP請求。如果不加密數(shù)據(jù)包的話,遭到惡意腳本劫持的代理服務器就有可能對其他用戶發(fā)起攻擊。加密之后,因為代理服務器無法讀取加密的信息,所以只能將其轉發(fā)到指定的終端。

        目前,并非所有的瀏覽器都支持最新的WebSocket協(xié)議。但是這種情況在接下來的幾個月會發(fā)生改變,因為WebSocket作為HTML5的重要特性之一,可以提供先進的互聯(lián)網(wǎng)特性,讓Web應用更加快速、高效和強大。

        国产亚洲av夜间福利在线观看| 伊人久久综合影院首页| 人人妻人人澡人人爽欧美一区九九| 高清不卡一区二区三区| 少妇人妻200篇白洁| 久久精品国产免费观看99| 蜜桃av噜噜一区二区三区免费 | 熟女无套内射线观56| 国产欧美成人| 国产丝袜美腿诱惑在线观看 | 国产亚洲午夜精品| 视频精品熟女一区二区三区| 谷原希美中文字幕在线| 亚洲人交乣女bbw| 国内精品久久久久久无码不卡| 中文无码制服丝袜人妻AV| 亚洲天堂av一区二区| 亚洲av片在线观看| 依依成人精品视频在线观看| 国产精品丝袜美女在线观看| 日本一区二区三区一级免费| 少妇免费av一区二区三区久久| 日韩毛片无码永久免费看| 精品四虎免费观看国产高清| 精品日韩av专区一区二区| 插入日本少妇一区二区三区| 亚洲欧美一区二区三区在线| 麻豆久久五月国产综合| 女同重口味一区二区在线| 婷婷伊人久久大香线蕉av| aaaaa级少妇高潮大片免费看| 人妻系列影片无码专区| 日本一区二区三区区视频| 国产高清在线观看av片| 精品久久久久久中文字幕大豆网 | 中文字幕日韩一区二区不卡| 成人免费播放视频777777| 国产亚洲2021成人乱码| 国产在线网址| 精品久久精品久久精品| 人成综合视频在线播放|