WebSockets - 功能



Web Socket 代表著網路通訊歷史上的一項重大升級。在其出現之前,Web 客戶端和伺服器之間所有的通訊都僅依賴於 HTTP。

Web Socket 有助於實現永續性全雙工連線的動態流動。全雙工指的是雙方以相當快的速度進行通訊。

由於其克服了現有協議所有缺點的效率,它被稱為遊戲規則的改變者。

面向開發者和架構師的 Web Socket

Web Socket 對開發者和架構師的重要性 -

  • Web Socket 是一種獨立的基於 TCP 的協議,但它被設計為支援任何其他協議,而這些協議傳統上只能在純 TCP 連線之上執行。

  • Web Socket 是一個傳輸層,任何其他協議都可以在其之上執行。Web Socket API 支援定義子協議的能力:可以解釋特定協議的協議庫。

  • 此類協議的示例包括 XMPP、STOMP 和 AMQP。開發者不再需要以 HTTP 請求-響應正規化進行思考。

  • 瀏覽器端唯一的需求是執行一個可以解釋 Web Socket 握手、建立和維護 Web Socket 連線的 JavaScript 庫。

  • 在伺服器端,行業標準是使用在 TCP 之上執行並利用 Web Socket 閘道器的現有協議庫。

下圖描述了 Web Sockets 的功能 -

Web

Web Socket 連線是透過 HTTP 發起的;HTTP 伺服器通常將 Web Socket 握手解釋為升級請求。

Web Sockets 可以作為現有 HTTP 環境的補充外掛,也可以提供新增 Web 功能所需的架構。它依賴於更高階的全雙工協議,允許資料在客戶端和伺服器之間雙向流動。

Web Sockets 的功能

Web Sockets 在 Web 伺服器和客戶端之間提供連線,以便雙方都可以開始傳送資料。

建立 Web Socket 連線的步驟如下 -

  • 客戶端透過稱為 Web Socket 握手的過程建立連線。

  • 該過程從客戶端向伺服器傳送常規 HTTP 請求開始。

  • 請求升級標頭。在此請求中,它通知伺服器請求是用於 Web Socket 連線的。

  • Web Socket URL 使用 ws 方案。它們也用於安全的 Web Socket 連線,相當於 HTTPs。

初始請求標頭的簡單示例如下 -

GET ws://websocket.example.com/ HTTP/1.1
Origin: http://example.com
Connection: Upgrade
Host: websocket.example.com
Upgrade: websocket
廣告