国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

為什么有了HTTP,還需要WebSocket協(xié)議?

這篇具有很好參考價(jià)值的文章主要介紹了為什么有了HTTP,還需要WebSocket協(xié)議?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

WebSocket是什么?

WebSocket怎樣建立連接?

WebSocket的實(shí)際用途

WebSocket 與 HTTP 的選擇


為什么有了HTTP,還需要WebSocket協(xié)議?

HTTP是基于TCP協(xié)議的,同一時(shí)間里,客戶端和服務(wù)器只能有一方主動(dòng)發(fā)數(shù)據(jù),是半雙工通信

通常,打開某個(gè)網(wǎng)頁,我們每點(diǎn)擊一次網(wǎng)頁上的某個(gè)選項(xiàng),前端就會(huì)發(fā)送一次HTTP請(qǐng)求,網(wǎng)站返回一次HTTP響應(yīng)。這種由客戶端主動(dòng)請(qǐng)求,服務(wù)器響應(yīng)的方式滿足大部分網(wǎng)頁的功能場景。但這種情況下,服務(wù)器不會(huì)主動(dòng)給客戶端發(fā)消息。而類似網(wǎng)頁游戲這樣的場景,是需要客戶端和服務(wù)器之間互相主動(dòng)發(fā)大量數(shù)據(jù)的。

因此,我們需要一個(gè)基于TCP的新協(xié)議,即新的應(yīng)用層協(xié)議WebSocket。

為什么有了HTTP,還需要WebSocket協(xié)議?

WebSocket是什么?

WebSocket 是一種用于在單個(gè) TCP 連接上進(jìn)行全雙工通信的網(wǎng)絡(luò)協(xié)議。它使用類似于 HTTP 的握手來建立連接,然后使用單獨(dú)的持久連接來進(jìn)行通信。這種方式使得 WebSocket 可以在瀏覽器和服務(wù)器之間進(jìn)行實(shí)時(shí)通信,而不需要多次發(fā)送 HTTP 請(qǐng)求來獲取數(shù)據(jù)。這意味著連接是持久的,它一直保持打開,直到有一方主動(dòng)關(guān)閉連接。這使得 WebSocket 非常適合用于實(shí)時(shí)應(yīng)用程序,因?yàn)樗恍枰粩嗟亟⒑完P(guān)閉連接。

WebSocket怎樣建立連接?

WebSocket 連接通常在客戶端(例如瀏覽器)和服務(wù)器之間建立??蛻舳税l(fā)送一個(gè) HTTP 請(qǐng)求來建立連接,然后服務(wù)器返回一個(gè)確認(rèn)消息,表示已建立連接。之后,客戶端和服務(wù)器可以通過這個(gè)連接進(jìn)行雙向通信??蛻舳丝梢韵蚍?wù)器發(fā)送消息,服務(wù)器也可以向客戶端發(fā)送消息。消息可以是任意的字節(jié)數(shù)組,并且可以使用任意的格式進(jìn)行編碼。

為什么有了HTTP,還需要WebSocket協(xié)議?
建立websocket連接

WebSocket 是一種必不可少的客戶端—服務(wù)器通信工具,需要充分了解其實(shí)用性并避免使用場景才能從其最大潛力中獲益。

WebSocket的實(shí)際用途

最常見的用途是在實(shí)時(shí)應(yīng)用程序開發(fā)中,它有助于在客戶端持續(xù)顯示數(shù)據(jù)。由于后端服務(wù)器不斷發(fā)回此數(shù)據(jù),WebSocket 允許在已打開的連接中不間斷地推送或傳輸此數(shù)據(jù),使此類數(shù)據(jù)傳輸更快,并利用了應(yīng)用程序的性能。?

聊天應(yīng)用程序開發(fā)人員在一次性交換、發(fā)布、廣播消息等操作中調(diào)用 WebSocket 。由于使用相同的 WebSocket 連接來發(fā)送或接收消息,因此通信變得簡單、輕量、快捷。

在進(jìn)行游戲應(yīng)用程序開發(fā)的同時(shí),服務(wù)器必須不間斷地接收數(shù)據(jù),而不要求刷新 UI。WebSocket在不影響游戲應(yīng)用程序 UI 的情況下實(shí)現(xiàn)了這一目標(biāo)。

為什么有了HTTP,還需要WebSocket協(xié)議?

從上述幾個(gè)示例中,我們大概知道了在什么情況下不太適合使用,例如數(shù)據(jù)交互周期很長,甚至幾小時(shí)一次的情況或只需要一次性處理數(shù)據(jù)時(shí),不應(yīng)采用 WebSocket協(xié)議。在這些情況下,使用 HTTP 協(xié)議是一個(gè)明智的選擇。由于 HTTP 和 WebSocket 都用于應(yīng)用程序通信,因此人們常常感到困惑,很難從這兩者中選擇一個(gè)。

WebSocket 與 HTTP 的選擇

WebSocket 是一種框架雙向協(xié)議。與此相反,HTTP 是一種單向協(xié)議,作用于 TCP 協(xié)議之上。由于WebSocket協(xié)議能夠支持不間斷的數(shù)據(jù)傳輸,因此主要用于實(shí)時(shí)應(yīng)用程序開發(fā)。HTTP 是無狀態(tài)的,用于開發(fā)RESTful和 SOAP 應(yīng)用程序。SOAP 仍然可以使用 HTTP 來實(shí)現(xiàn),但是 REST 被廣泛傳播和使用。

為什么有了HTTP,還需要WebSocket協(xié)議?

在 WebSocket 中,通信發(fā)生在兩端,這使其成為更快的協(xié)議。在 HTTP 中,連接是在一端建立的,這使得它比 WebSocket 有點(diǎn)慢。WebSocket 使用統(tǒng)一的 TCP 連接,需要一方終止連接。在它發(fā)生之前,連接保持活動(dòng)狀態(tài)。HTTP 需要為單獨(dú)的請(qǐng)求建立不同的連接。請(qǐng)求完成后,連接會(huì)自動(dòng)斷開。

為什么有了HTTP,還需要WebSocket協(xié)議?
HTTP 長輪詢

現(xiàn)今對(duì)網(wǎng)絡(luò)數(shù)據(jù)安全性也存在更多需求,WebSocket 連接使用的是標(biāo)準(zhǔn)的 TCP 連接,因此它可以在任何支持 TCP 的網(wǎng)絡(luò)上使用。它使用的是 ws:// 和 wss:// 協(xié)議前綴,這些前綴可以與任何域名或 IP 地址結(jié)合使用。

WebSocket 連接是可以加密的,可以使用 TLS(Transport Layer Security,傳輸層安全)協(xié)議來保護(hù)數(shù)據(jù)的安全。這種加密連接使用的是 wss:// 協(xié)議前綴,與不加密的連接使用的 ws:// 協(xié)議前綴相區(qū)別。除此之外,WebSocket 還支持安全握手協(xié)議(Secure Handshake Protocol),這使得它可以在瀏覽器和服務(wù)器之間進(jìn)行加密通信??偟膩碚f,WebSocket 具有較高的安全性,可以保護(hù)數(shù)據(jù)的安全。

另外,需要注意的是,WebSocket不是基于HTTP的新協(xié)議,因?yàn)閃ebSocket只有在建立連接時(shí)才用到了HTTP,升級(jí)完成之后就跟HTTP不再有任何關(guān)系。

為什么有了HTTP,還需要WebSocket協(xié)議?

?? 參考資料

  • 簡單了解幾種常見的網(wǎng)絡(luò)通信協(xié)議
  • 通信協(xié)議/通訊協(xié)議有哪些?包含哪些分類?

為什么有了HTTP,還需要WebSocket協(xié)議?文章來源地址http://www.zghlxwxcb.cn/news/detail-502318.html

到了這里,關(guān)于為什么有了HTTP,還需要WebSocket協(xié)議?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 為什么有了IP地址,還需要MAC地址呢?

    為什么有了IP地址,還需要MAC地址呢?

    不知道大家有沒有困惑:為什么有了IP地址,還需要MAC地址呢? 他們之間到底有什么聯(lián)系?又有什么區(qū)別?是不是有一個(gè)是多余的? 流言傳到了“IP地址”和“MAC地址”的耳朵里,他倆也非??鄲?,今天文檔君把話筒遞給他們,看看他們?cè)趺凑f? ? ? PART ? 0 1 ? MACIP的自白

    2024年02月06日
    瀏覽(27)
  • 為什么有了 HTTP 還要 RPC

    哈嘍大家好,我是咸魚 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,分布式架構(gòu)越來越被人們所采用。在分布式架構(gòu)下, 為了實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)邏輯,應(yīng)用程序需要分布式通信實(shí)現(xiàn)遠(yuǎn)程調(diào)用 而這時(shí)候就需要一種協(xié)議來支持遠(yuǎn)程過程調(diào)用,以便實(shí)現(xiàn)不同應(yīng)用程序之間的數(shù)據(jù)交換和信息傳遞。其中常

    2024年02月05日
    瀏覽(30)
  • 為什么需要websocket?

    為什么需要websocket?

    前端和后端的交互模式最常見的就是前端發(fā)數(shù)據(jù)請(qǐng)求,從后端拿到數(shù)據(jù)后展示到頁面中。如果前端不做操作,后端不能主動(dòng)向前端推送數(shù)據(jù),這也是http協(xié)議的缺陷。 ? ? ? ?因此,一種新的通信協(xié)議應(yīng)運(yùn)而生---websocket,他最大的特點(diǎn)就是服務(wù)端可以主動(dòng)向客戶端推送消息,客

    2024年02月12日
    瀏覽(31)
  • 什么是 http 代理,為什么需要 http 代理?

    什么是 http 代理,為什么需要 http 代理?

    ? 在我們進(jìn)行軟件測試工作的時(shí)候,會(huì)有很多地方需要去設(shè)置代理的。 比如:fiddler抓包,jmeter錄制腳本等等。 甚至于,在某些公司,去訪問某些內(nèi)部網(wǎng)址的時(shí)候,都需要通過連接vpn才能成功訪問。 那到底什么是代理?我們?yōu)槭裁匆褂么砟兀?代理也稱網(wǎng)絡(luò)代理,是一種

    2024年02月05日
    瀏覽(23)
  • 為什么WebSocket需要前端心跳檢測,有沒有原生的檢測機(jī)制?

    本文代碼 github、gitee、npm 在web應(yīng)用中,WebSocket是很常用的技術(shù)。通過瀏覽器的WebSocket構(gòu)造函數(shù)就可以建立一個(gè)WebSocket連接。但當(dāng)需要應(yīng)用在具體項(xiàng)目中時(shí),幾乎都會(huì)進(jìn)行心跳檢測。 設(shè)置心跳檢測,一是讓通訊雙方確認(rèn)對(duì)方依舊活躍,二是瀏覽器端及時(shí)檢測當(dāng)前網(wǎng)絡(luò)線路可用

    2024年02月03日
    瀏覽(38)
  • 爬蟲為什么需要 HTTP 代理 IP?

    爬蟲為什么需要 HTTP 代理 IP?

    前言 爬蟲在互聯(lián)網(wǎng)數(shù)據(jù)采集、分析和挖掘中扮演著至關(guān)重要的角色,但是對(duì)于目標(biāo)網(wǎng)站而言,頻繁的爬蟲請(qǐng)求可能會(huì)對(duì)其服務(wù)器產(chǎn)生不小的負(fù)擔(dān),嚴(yán)重的情況甚至?xí)?dǎo)致網(wǎng)站崩潰或者訪問受限。為了避免這種情況的發(fā)生,同時(shí)也為了保護(hù)客戶端的隱私和安全,爬蟲使用HTTP代

    2024年02月07日
    瀏覽(22)
  • 既然有 HTTP 協(xié)議,為什么還要有 RPC

    既然有 HTTP 協(xié)議,為什么還要有 RPC

    什么是HTTP HTTP 協(xié)議( H yper T ext T ransfer P rotocol),又叫做 超文本傳輸協(xié)議 。平時(shí)上網(wǎng)在瀏覽器上敲個(gè)網(wǎng)址就能訪問網(wǎng)頁,這里用到的就是HTTP協(xié)議。 什么是RPC RPC ( R emote P rocedure C all),又叫做 遠(yuǎn)程過程調(diào)用 。它并不是一個(gè)具體的協(xié)議,而是一種 調(diào)用方式 。 像之前的單體

    2024年02月09日
    瀏覽(34)
  • 既然有HTTP協(xié)議,為什么還要有RPC?

    既然有HTTP協(xié)議,為什么還要有RPC?

    我想起了我剛工作的時(shí)候,第一次接觸RPC協(xié)議,當(dāng)時(shí)就很懵, 我HTTP協(xié)議用得好好的,為什么還要用RPC協(xié)議? ? 于是就到網(wǎng)上去搜。 ? 不少解釋顯得非常官方,我相信大家在各種平臺(tái)上也都看到過,解釋了又好像沒解釋,都在 用一個(gè)我們不認(rèn)識(shí)的概念去解釋另外一個(gè)我們不

    2024年02月09日
    瀏覽(31)
  • HTTP協(xié)議演進(jìn):為什么說HTTP/1.1的時(shí)代已經(jīng)過去了

    HTTP協(xié)議演進(jìn):為什么說HTTP/1.1的時(shí)代已經(jīng)過去了

    前言 ??歡迎來到今天的每日一題,每日一提。昨天聊到了,HTTP 是什么。有哪些組成部分。并且最后提到了 HTTP 的一些缺點(diǎn),比如:性能較低,容易導(dǎo)致網(wǎng)絡(luò)擁塞和延遲,不支持服務(wù)器推送等等。設(shè)計(jì)協(xié)議的大佬們,對(duì)這樣的缺點(diǎn)肯定是不能容忍的,所以 HTTP2 它來了。 什

    2023年04月17日
    瀏覽(28)
  • Java中有了equals(),為什么還有“==“

    Java中有了equals(),為什么還有“==“

    背景:Java中“一切皆是對(duì)象”,為什么還有非對(duì)象的“==”? 在Java語言假設(shè)我們只進(jìn)行OOP,所以Java代碼都是由一個(gè)接著一個(gè)的類組成的。那么,對(duì)象之間比較,用equals()就可以了。 可為什么“==”在代碼隨處可見呢? Java是基于C++的,相比與C++,Java是一種更“純粹”的面向

    2023年04月20日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包