天天看點

ws協定與http協定

http協定(識别資料内容)與webSocket協定

同:建立在TCP之上,同http一樣通過TCP來傳輸資料

不同:

HTTP協定為單向協定,即浏覽器隻能向伺服器請求資源,伺服器才能将資料傳送給浏覽器,而伺服器不能主動向浏覽器傳遞資料。分為長連接配接和短連接配接,短連接配接是每次http請求時都需要三次握手才能發送自己的請求,每個request對應一個response;長連接配接是短時間内保持連接配接,保持TCP不斷開,指的是TCP連接配接。

WebSocket解決用戶端發起多個http請求到伺服器資源浏覽器必須要經過長時間的輪詢問題。

一種雙向通信協定,在建立連接配接後,WebSocket伺服器和Browser/UA都能主動的向對方發送或接收資料,就像Socket一樣,不同的是WebSocket是一種建立在Web基礎上的一種簡單模拟Socket的協定;

WebSocket需要通過握手連接配接,類似于TCP它也需要用戶端和伺服器端進行握手連接配接,連接配接成功後才能互相通信。

WebSocket在建立握手連接配接時,資料是通過http協定傳輸的,“GET/chat HTTP/1.1”,這裡面用到的隻是http協定一些簡單的字段。但是在建立連接配接之後,真正的資料傳輸階段是不需要http協定參與的。

TCP/IP協定(用來傳輸資料)

ws協定與http協定

socket是對TCP/IP協定的封裝,本身并不是協定,而是一個調用接口(API),通過Socket,我們才能使用TCP/IP。

四層,分别為應用層(Telnet、FTP和Email等)、運輸層(TCP、UDP)、網絡層(IP、ICMP、IGMP等)和鍊路層(裝置驅動程式)

三次握手完畢後,用戶端與伺服器才正式開始傳送資料

四次揮手後斷開連接配接

套接字之間的連接配接過程分為三個步驟:伺服器監聽,用戶端請求,連接配接确認

TCP:面向連接配接,通過三次握手建立連接配接,通訊完成時要拆除連接配接,隻能端到端傳輸

UDP:無連接配接,可實作廣播發送

TCP/IP通信資料流

ws協定與http協定

下面是我們通路一個網頁,各種協定在裡面起的作用。

ws協定與http協定

以上圖例來自《圖解HTTP》

繼續閱讀