WebSocket 界面測試淺談

2023.10.04

WebSocket 界面測試淺談


WebSocket 使得客戶端和伺服器之間的資料交換變得更加簡單,允許服務端主動向客戶端推送資料。

什麼是WebSocket

WebSocket 是一種基於在單一TCP 連接上進行全雙工通信的協議,解決了HTTP協議不適用於實時通信的缺點,相較於HTTP 協議,WebSocket 協議實現了持久化網絡通信,可以實現客戶端和服務端的長連接,能夠進行雙向即時通信,協定名為"ws"。

WebSocket 使得客戶端和伺服器之間的資料交換變得更加簡單,允許服務端主動向客戶端推送資料。在WebSocket API 中,瀏覽器和伺服器只需要完成一次握手,兩者之間就直接可以創建持久性的連接,並進行雙向資料傳輸。在WebSocket API 中,瀏覽器和伺服器只需要做一個握手的動作,然後,瀏覽器和伺服器之間就形成了一條快速通道。兩者之間就直接可以資料互相傳送。

HTTP與WebSocket

WebSocket的特點

  • 建立在TCP 協定之上,服務器端的實作比較容易。
  • 與HTTP 協定有著良好的相容性。預設端口也是80和443,握手階段採用HTTP 協議,因此握手時不容易屏蔽,能通過各種HTTP 代理服務器。
  • 數據格式比較輕量,效能開銷小,通訊高效。
  • 可以發送文本,也可以發送二進位資料。
  • 沒有同源限制,客戶端可以與任意服務器通訊。
  • 協定識別碼是ws(如果加密,則為wss),伺服器網址就是URL。
ws://example.com:80/some/path
  • 1.

 

Socket 是什麼?

網路上的兩個程式透過一個雙向的通訊連線實現資料的交換,這個連線的一端稱為一個Socket(套接字),因此建立網路通訊連線至少要一對連接埠號碼。

Socket 本質:是對TCP/IP 協定棧的封裝,它提供了一個針對TCP 或UDP 編程的接口,並不是另一種協定。透過Socket,你可以使用TCP/IP 協定。