小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

WebSocket與Socket

 和合德 2023-08-06 發(fā)布于江蘇

一、WebSocket 是什么? 
WebSocket是HTML5規(guī)范提出的一種協(xié)議;目前除了完?duì)僮拥腎E瀏覽器,其他瀏覽器都基本支持。他是一種協(xié)議,萬變不離其宗,也是基于TCP協(xié)議的;和HTTP協(xié)議是并存的兩種協(xié)議。 
WebSocket是HTML5中的協(xié)議。HTML5 Web Sockets規(guī)范定義了Web Sockets API,支持頁面使用Web Socket協(xié)議與遠(yuǎn)程主機(jī)進(jìn)行全雙工的通信。它引入了WebSocket接口并且定義了一個(gè)全雙工的通信通道,通過一個(gè)單一的套接字在Web上進(jìn)行操作。HTML5 Web Sockets以最小的開銷高效地提供了Web連接。相較于經(jīng)常需要使用推送實(shí)時(shí)數(shù)據(jù)到客戶端甚至通過維護(hù)兩個(gè)HTTP連接來模擬全雙工連接的舊的輪詢或長輪詢(Comet)來說,這就極大的減少了不必要的網(wǎng)絡(luò)流量與延遲。 
要使用HTML5 Web Sockets從一個(gè)Web客戶端連接到一個(gè)遠(yuǎn)程端點(diǎn),你要?jiǎng)?chuàng)建一個(gè)新的WebSocket實(shí)例并為之提供一個(gè)URL來表示你想要連接到的遠(yuǎn)程端點(diǎn)。該規(guī)范定義了ws://以及wss://模式來分別表示W(wǎng)ebSocket和安全WebSocket連接,這就跟http:// 以及https:// 的區(qū)別是差不多的。一個(gè)WebSocket連接是在客戶端與服務(wù)器之間HTTP協(xié)議的初始握手階段將其升級到Web Socket協(xié)議來建立的,其底層仍是TCP/IP連接。

二、WebSocket與Socket的關(guān)系

Socket其實(shí)并不是一個(gè)協(xié)議,而是為了方便使用TCP或UDP而抽象出來的一層,是位于應(yīng)用層和傳輸控制層之間的一組接口。

“Socket是應(yīng)用層與TCP/IP協(xié)議族通信的中間軟件抽象層,它是一組接口,提供一套調(diào)用TCP/IP協(xié)議的API。在設(shè)計(jì)模式中,Socket其實(shí)就是一個(gè)門面模式,它把復(fù)雜的TCP/IP協(xié)議族隱藏在Socket接口后面,對用戶來說,一組簡單的接口就是全部,讓Socket去組織數(shù)據(jù),以符合指定的協(xié)議?!?/p>

當(dāng)兩臺(tái)主機(jī)通信時(shí),必須通過Socket連接,Socket則利用TCP/IP協(xié)議建立TCP連接。TCP連接則更依靠于底層的IP協(xié)議,IP協(xié)議的連接則依賴于鏈路層等更低層次。

WebSocket就像HTTP一樣,則是一個(gè)典型的應(yīng)用層協(xié)議。 
這里寫圖片描述

總結(jié):

Socket是傳輸控制層接口,WebSocket是應(yīng)用層協(xié)議。
  • 1

三、WebSocket與HTTP的關(guān)系 
關(guān)系圖: 
這里寫圖片描述

相同點(diǎn)

 
  1. 1. 都是一樣基于TCP的,都是可靠性傳輸協(xié)議。

  2. 2. 都是應(yīng)用層協(xié)議。

  • 1
  • 2

不同點(diǎn)

 
  1. 1. WebSocket是雙向通信協(xié)議,模擬Socket協(xié)議,可以雙向發(fā)送或接受信息。HTTP是單向的。

  2. 2. WebSocket是需要瀏覽器和服務(wù)器握手進(jìn)行建立連接的。而http是瀏覽器發(fā)起向服務(wù)器的連接,服務(wù)器預(yù)先并不知道這個(gè)連接。

  • 1
  • 2

聯(lián)系

WebSocket在建立握手時(shí),數(shù)據(jù)是通過HTTP傳輸?shù)?。但是建立之后,在真正傳輸時(shí)候是不需要HTTP協(xié)議的。
  • 1

總結(jié):

在WebSocket中,只需要服務(wù)器和瀏覽器通過HTTP協(xié)議進(jìn)行一個(gè)握手的動(dòng)作,然后單獨(dú)建立一條TCP的通信通道進(jìn)行數(shù)據(jù)的傳送。 
WebSocket連接的過程是:

 
  1. 首先,客戶端發(fā)起http請求,經(jīng)過3次握手后,建立起TCP連接;http請求里存放WebSocket支持的版本號等信息,如:Upgrade、Connection、WebSocket-Version等;

  2. 然后,服務(wù)器收到客戶端的握手請求后,同樣采用HTTP協(xié)議回饋數(shù)據(jù);

  3. 最后,客戶端收到連接成功的消息后,開始借助于TCP傳輸信道進(jìn)行全雙工通信。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多