1. 程式人生 > 其它 >Websocket、http、socket關係

Websocket、http、socket關係

1、 socket並不是一個協議,Socket是應用層與TCP/IP協議族通訊的中間軟體抽象層,它是一組介面,提供一套呼叫TCP/IP協議的API。 當兩臺主機通訊時,必須通過Socket連線,Socket則利用TCP/IP協議建立TCP連線。TCP連線則更依靠於底層的IP協議,IP協議的連線則依賴於鏈路層等更低層次

 

2、 WebSocket和HTTP一樣,都是一個典型的應用層協議。

區別:

WebSocket是雙向通訊協議,模擬Socket協議,可以雙向傳送或接受資訊。HTTP是單向的。

WebSocket是需要瀏覽器和伺服器握手進行建立連線的。而http是瀏覽器發起向伺服器的連線,伺服器預先並不知道這個連線。

 

聯絡:

WebSocket在建立握手時,資料是通過HTTP傳輸的。但是建立之後,在真正傳輸時候是不需要HTTP協議的。

 

總結:

在WebSocket中,只需要伺服器和瀏覽器通過HTTP協議進行一個握手的動作,然後單獨建立一條TCP的通訊通道進行資料的傳送。

WebSocket連線的過程是:

首先,客戶端發起http請求,經過3次握手後,建立起TCP連線;http請求裡存放WebSocket支援的版本號等資訊,如:Upgrade、Connection、WebSocket-Version等;

然後,伺服器收到客戶端的握手請求後,同樣採用HTTP協議回饋資料;

最後,客戶端收到連線成功的訊息後,開始藉助於TCP傳輸通道進行全雙工通訊。