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
Socket 是什么?
網絡上的兩個程序通過一個雙向的通信連接實現數據的交換,這個連接的一端稱為一個 Socket(套接字),因此建立網絡通信連接至少要一對端口號。
Socket 本質:是對 TCP/IP 協議棧的封裝,它提供了一個針對 TCP 或者 UDP 編程的接口,并不是另一種協議。通過 Socket,你可以使用 TCP/IP 協議。