天天看點

應用層協定——WebSocket學習

學習查閱資料記錄:

1、websocket和http的差別:

  • WebSocket是雙向通信協定,模拟Socket協定,可以雙向發送或接受資訊,而HTTP是單向的;
  • WebSocket是需要浏覽器和伺服器握手進行建立連接配接的,而http是浏覽器發起向伺服器的連接配接。

2、協定規範定義了ws://以及wss://模式來分别表示WebSocket和安全WebSocket連接配接,這就跟http:// 以及https:// 的差別是差不多的。

3、一個WebSocket連接配接是在用戶端與伺服器之間HTTP協定的初始握手階段将其更新到Web Socket協定來建立的,其底層仍是TCP/IP連接配接,

即:在WebSocket中,隻需要伺服器和浏覽器通過HTTP協定進行一個握手的動作,然後單獨建立一條TCP的通信通道進行資料的傳送。

4、Socket其實并不是一個協定,而是為了友善使用TCP或UDP而抽象出來的一層,是位于應用層和傳輸控制層之間的一組接口。

5、在設計模式中,Socket其實就是一個門面模式,它把複雜的TCP/IP協定族隐藏在Socket接口後面,對使用者來說,一組簡單的接口就是全部,讓Socket去組織資料,以符合指定的協定。”當兩台主機通信時,必須通過Socket連接配接,Socket則利用TCP/IP協定建立TCP連接配接。TCP連接配接則更依靠于底層的IP協定,IP協定的連接配接則依賴于鍊路層等更低層次。

6、Socket是傳輸控制層接口,WebSocket是應用層協定。

7、在WebSocket中,隻需要伺服器和浏覽器通過HTTP協定進行一個握手的動作,然後單獨建立一條TCP的通信通道進行資料的傳送。

8、WebSocket連接配接的過程是:

  • 首先,用戶端發起http請求,經過3次握手後,建立起TCP連接配接;http請求裡存放WebSocket支援的版本号等資訊,如:Upgrade、Connection、WebSocket-Version等;
  • 然後,伺服器收到用戶端的握手請求後,同樣采用HTTP協定回饋資料;
  • 最後,用戶端收到連接配接成功的消息後,開始借助于TCP傳輸信道進行全雙工通信。

參考&&緻謝:

1、websocket和http的差別 —— https://www.php.cn/faq/465597.html

2、HTML5 WebSocket —— https://www.runoob.com/html/html5-websocket.html

3、WebSocket —— https://developer.mozilla.org/zh-CN/docs/Web/API/WebSocket

4、 https://blog.csdn.net/wwd0501/article/details/54582912?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.control

繼續閱讀