http和socket和websocket的差別和聯系的學習筆記
1.OSI七層網絡模型
OSI網絡七層模型分析:
OSI網絡七層模型 TCP/IP四層概念模型 五層模型 對應的網絡協定 應用層(Application) 應用層 應用層 HTTP,TFTP, FTP, NFS, WAIS,SMTP 表示層(Presentation 應用層 應用層 Telnet, Rlogin, SNMP, Gopher 會話層(Session) 應用層 應用層 SMTP, DNS 傳輸層(Transport) 傳輸層 傳輸層 TCP, UDP 網絡層(Network) 網絡層 網絡層 IP, ICMP, ARP, RARP, AKP, UUCP 資料鍊路層(Data Link) 資料鍊路層 資料鍊路層 FDDI, Ethernet, Arpanet, PDN, SLIP, PPP 實體層(Physical) 資料鍊路層 實體層 IEEE 802.1A,iEEE 802.2到EEE 802.11 ![]()
http和socket和websocket的差別和聯系的學習筆記
2.http
- 應用層協定: HTTP(超文本傳輸協定)是利用TCP在兩台電腦(通常是Web伺服器和用戶端)之間傳輸資訊的協定。用戶端使用Web浏覽器發起HTTP請求給Web伺服器,Web伺服器發送被請求的資訊給用戶端。
HTTP 是基于請求響應式的,即通信隻能由用戶端發起,服務端做出響應,無狀态,無連接配接。
無狀态:每次連接配接隻處理一個請求,請求結束後斷開連接配接。
無連接配接:對于事務處理沒有記憶能力,伺服器不知道用戶端是什麼狀态。
3.socket
- socket: TCP/IP網絡的API。Socket是應用層與TCP/IP協定族通信的中間軟體抽象層,它是一組接口。socket是在應用層和傳輸層之間的一個抽象層,它把TCP/IP層複雜的操作抽象為幾個簡單的接口供應用層調用已實作程序在網絡中通信。
- tcp/ip :
- 代表傳輸控制協定/網際協定,指的是一系列協定,TCP/IP 模型在 OSI 模型的基礎上進行了簡化,變成了四層,從下到上分别為:網絡接口層、網絡層、傳輸層、應用層
![]()
http和socket和websocket的差別和聯系的學習筆記
4.websocket
是雙向的,在用戶端-伺服器通信的場景中使用的全雙工協定,與
WebSocket
不同,它以
HTTP
或
ws://
開頭。它是一個有狀态協定,這意味着用戶端和伺服器之間的連接配接将保持活動狀态,直到被任何一方(用戶端或伺服器)終止。在通過用戶端和伺服器中的任何一方關閉連接配接之後,連接配接将從兩端終止。
wss://
websocket的特點:
(1)建立在 TCP 協定之上,伺服器端的實作比較容易。
(2)與 HTTP 協定有着良好的相容性。預設端口也是80和443,并且握手階段采用 HTTP 協定,是以握手時不容易屏蔽,能通過各種 HTTP 代理伺服器。
(3)資料格式比較輕量,性能開銷小,通信高效。
(4)可以發送文本,也可以發送二進制資料。
(5)沒有同源限制,用戶端可以與任意伺服器通信。
(6)協定辨別符是ws(如果加密,則為wss),伺服器網址就是 URL。
Websocket使用和 HTTP 相同的 TCP 端口,可以繞過大多數防火牆的限制。預設情況下,Websocket協定使用80端口;運作在TLS之上時,預設使用443端口。
5.websocket和http的關系
相同點
都是一樣基于TCP的,都是可靠性傳輸協定。 都是應用層協定。
不同點
WebSocket是雙向通信協定,模拟Socket協定,可以雙向發送或接受資訊。HTTP是單向的。 WebSocket是需要握手進行建立連接配接的。
聯系 WebSocket在建立握手時,資料是通過HTTP傳輸的。但是建立之後,在真正傳輸時候是不需要HTTP協定的。