1. 程式人生 > >讓C/S進行全雙工通訊的WebSocket協議

讓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獨立的資料幀。