讓C/S進行全雙工通信的WebSocket協議

超文本傳輸協議(HTTP)作爲一種簡單的協議,在面對功能日益豐富的 Web應用時,遇到了如下瓶頸:

1、在客戶端請求時,會建立一個TCP連接,然後發送請求,服務端給出響應,然後連接就關閉了。(現在的HTTP1.1支持消除了這個瓶頸)
2、客戶端和服務器之間的交互是採用請求/響應模式,缺乏服務器通知客戶端的機制,在需要通知的場景,如聊天室,遊戲,客戶端應用需要不斷地輪詢服務器。
3、請求/響應首部不經過壓縮就發送,帶來了延遲。

WebSocket協議 就是爲了解決第二個瓶頸。

WebSocket協議 使用一個TCP連接進行雙向通訊的機制,包括網絡協議和API,以取代 HTTP協議中以輪詢進行雙向通訊的機制。

本質上來說,WebSocket協議是不限於 HTTP協議的,但是由於現存大量的HTTP基礎設施,代理,過濾,身份認證等等,WebSocket協議 借用 HTTP 和 HTTPS 的端口。

爲了實現 WebSocket通信,需要使用到 HTTP協議來完成,並且使用 HTTP請求報文中的 Upgrade首部字段,告知服務器通信協議發送變化。

通過 HTTP的一次請求/響應後,客戶端和服務器之間接下來的通信將使用 WebSocket獨立的數據幀。

另外附兩篇講解得非常詳細的文章。
http://mp.weixin.qq.com/s?__biz=MjM5OTA1MDUyMA==&mid=2655437269&idx=2&sn=d117ec6551c7a407ee9a49af0e88d801&chksm=bd730da28a0484b443145049112a237fac3908cc5dc4723a7a0197c1c1e1ff771c8714eb7ce6&scene=4#wechat_redirect

http://mp.weixin.qq.com/s?__biz=MjM5OTA1MDUyMA==&mid=2655437317&idx=3&sn=c3aace00b57897d7a11e7abb3e87b2ec&chksm=bd730e728a0487649da2afb12a76a6844bc9a7f088fc70c80625dc837e2e01c01c70f49bc6ad&scene=0#wechat_redirect

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章