1. 程式人生 > >TCP/IP協議,HTTP協議與webSocket協議區別

TCP/IP協議,HTTP協議與webSocket協議區別

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協議(用來傳輸資料)

socket是對TCP/IP協議的封裝,本身並不是協議,而是一個呼叫介面(API),通過Socket,我們才能使用TCP/IP。

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

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

四次揮手後斷開連線

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

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

UDP:無連線,可實現廣播發送

TCP/IP通訊資料流

下面是我們訪問一個網頁,各種協議在裡面起的作用。

以上圖例來自《圖解HTTP》

PS:微信公眾號                FEvivi

                                                                                      

關注後回覆    vivi     獲取我的微訊號,望不吝賜教,pps:可輕撩哈哈

感謝大佬們閱讀,希望大家頭髮濃密,睡眠良好,情緒穩定,早日實現財富自由~