眾所周知,WebSocket是雙向的,它能夠在客戶端—服務(wù)器通信的場景中使用雙全工協(xié)議,與HTTP不同,它以ws://或wss://開頭。它是一個(gè)有狀態(tài)協(xié)議,這意味著客戶端和服務(wù)器之間的連接將保持活動狀態(tài),直到被任何一方(客戶端或服務(wù)器)終止。在通過客戶端和服務(wù)器中的任何一方關(guān)閉連接之后,連接將從兩端終止。
新建的連接被稱為WebSocket。一旦通信鏈接建立和連接打開后,消息交換將以雙向模式進(jìn)行,客戶端-服務(wù)器之間的連接會持續(xù)存在。如果其中任何一方(客戶端服務(wù)器)宕掉或主動關(guān)閉連接,則雙方均將關(guān)閉連接。套接字的工作方式與HTTP的工作方式略有不同,狀態(tài)代碼101表示W(wǎng)ebSocket中的交換協(xié)議。
延伸知識:
1、瀏覽器、服務(wù)器建立TCP連接,三次握手。這是通信的基礎(chǔ),傳輸控制層,若失敗后續(xù)都不執(zhí)行。
2、TCP連接成功后,瀏覽器通過HTTP協(xié)議向服務(wù)器傳送WebSocket支持的版本號等信息。(開始前的HTTP握手)
3、服務(wù)器收到客戶端的握手請求后,同樣采用HTTP協(xié)議回饋數(shù)據(jù)。
4、當(dāng)收到了連接成功的消息后,通過TCP通道進(jìn)行傳輸通信。
以上就是什么是websocket?的內(nèi)容。