<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

為什么有了HTTP,還需要WebSocket協議?

kae1_cdebyte ? 來源:億佰特物聯網應用專家 ? 2023-01-07 10:29 ? 次閱讀

HTTP是基于TCP協議的,同一時間里,客戶端和服務器只能有一方主動發數據,是半雙工通信。

通常,打開某個網頁,我們每點擊一次網頁上的某個選項,前端就會發送一次HTTP請求,網站返回一次HTTP響應。這種由客戶端主動請求,服務器響應的方式滿足大部分網頁的功能場景。但這種情況下,服務器不會主動給客戶端發消息。而類似網頁游戲這樣的場景,是需要客戶端和服務器之間互相主動發大量數據的。

因此,我們需要一個基于TCP的新協議,即新的應用層協議WebSocket。

WebSocket是什么?

WebSocket 是一種用于在單個 TCP 連接上進行全雙工通信的網絡協議。它使用類似于 HTTP 的握手來建立連接,然后使用單獨的持久連接來進行通信。這種方式使得 WebSocket 可以在瀏覽器和服務器之間進行實時通信,而不需要多次發送 HTTP 請求來獲取數據。這意味著連接是持久的,它一直保持打開,直到有一方主動關閉連接。這使得 WebSocket 非常適合用于實時應用程序,因為它不需要不斷地建立和關閉連接。

WebSocket怎樣建立連接?

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

建立websocket連接

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

WebSocket的實際用途

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

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

在進行游戲應用程序開發的同時,服務器必須不間斷地接收數據,而不要求刷新 UI。WebSocket在不影響游戲應用程序 UI 的情況下實現了這一目標。

從上述幾個示例中,我們大概知道了在什么情況下不太適合使用,例如數據交互周期很長,甚至幾小時一次的情況或只需要一次性處理數據時,不應采用 WebSocket協議。在這些情況下,使用 HTTP 協議是一個明智的選擇。

由于 HTTP 和 WebSocket 都用于應用程序通信,因此人們常常感到困惑,很難從這兩者中選擇一個。

WebSocket 與 HTTP 的選擇

WebSocket 是一種框架雙向協議。與此相反,HTTP 是一種單向協議,作用于 TCP 協議之上。由于WebSocket協議能夠支持不間斷的數據傳輸,因此主要用于實時應用程序開發。HTTP 是無狀態的,用于開發RESTful和 SOAP 應用程序。SOAP 仍然可以使用 HTTP 來實現,但是 REST 被廣泛傳播和使用。

在 WebSocket 中,通信發生在兩端,這使其成為更快的協議。在 HTTP 中,連接是在一端建立的,這使得它比 WebSocket 有點慢。WebSocket 使用統一的 TCP 連接,需要一方終止連接。在它發生之前,連接保持活動狀態。HTTP 需要為單獨的請求建立不同的連接。請求完成后,連接會自動斷開。

HTTP 長輪詢

現今對網絡數據安全性也存在更多需求,WebSocket 連接使用的是標準的 TCP 連接,因此它可以在任何支持 TCP 的網絡上使用。它使用的是 ws:// 和 wss:// 協議前綴,這些前綴可以與任何域名或 IP 地址結合使用。

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

另外,需要注意的是,WebSocket不是基于HTTP的新協議,因為WebSocket只有在建立連接時才用到了HTTP,升級完成之后就跟HTTP不再有任何關系。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    12

    文章

    8271

    瀏覽量

    83064
  • HTTP
    +關注

    關注

    0

    文章

    467

    瀏覽量

    30409
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1282

    瀏覽量

    78445
  • WebSocket
    +關注

    關注

    0

    文章

    24

    瀏覽量

    3673

原文標題:為什么有了HTTP,還需要WebSocket協議?

文章出處:【微信號:cdebyte,微信公眾號:億佰特物聯網應用專家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    為什么有了HTTP,還需要RPC協議?

    為什么有了HTTP,還需要RPC協議呢?在進行說明之前,首先我們需要了解什么是HTTP協議,什么
    的頭像 發表于 08-14 10:05 ?703次閱讀
    為什么有了<b class='flag-5'>HTTP</b>,<b class='flag-5'>還需要</b>RPC<b class='flag-5'>協議</b>?

    單片機還需要學匯編嗎

    單片機還需要學匯編嗎
    發表于 07-14 19:49

    NetRouter開發板之Websocket

    的事,最后發現,居然個叫socket.io。據說,集成了以上各種協議。好吧。我落伍完事為了這個。找了一圈。沒有扎到c的例子。參考:websockethtml例子:http://bl
    發表于 06-20 20:45

    Galileo gen2 wifi還需要配置什么?

    Wireless-AC 7260 進行到最后一步時,IDE Serial monitor提示WiFi shield not present 不知道是中間還需要配置什么?還是說那個linux不包含這個網卡的驅動?新人求助
    發表于 08-02 00:00

    為什么USB串口還需要TX,RX串口?

    ARDUNIO是干什么的?為什么USB串口還需要TX,RX串口?
    發表于 09-24 06:13

    基于TCP的一種新的網絡協議WebSocket

    開啟 WebSocket 服務WebSocket 服務是網頁程序、安卓 App、微信小程序等獲得數據和服務的接口,是基于TCP 的一種新的網絡協議,它實現瀏覽器與服務器全雙工通信。通
    發表于 12-16 07:38

    5G的商用還需要多久,看看三大運營商怎么說

    從1G到4G,也就短短幾年時間,那么真真到5G的商用到底還需要多久呢?
    發表于 07-12 16:44 ?1.2w次閱讀

    根據WebSocket協議完全使用C++實現函數

    由于需要在項目中增加Websocket協議,與客戶端進行通信,不想使用開源的庫,比如WebSocketPP,就自己根據WebSocket協議
    的頭像 發表于 11-28 14:29 ?4285次閱讀

    如何去做嵌入式_還需要具備這6點知識

    我們知道要入門嵌入式,進行嵌入式的學習,尤其是未來想要從事嵌入式硬件相關的工作,但是做嵌入式并不是只靠硬件還需要軟件,那么還需要具備一下這6點知識。
    的頭像 發表于 01-19 15:57 ?5293次閱讀

    WebSocket有什么優點

    WebSocket是一種在單個TCP連接上進行全雙工通信的協議。WebSocket通信協議于2011年被IETF定為標準RFC 6455,并由RFC7936補充規范。
    的頭像 發表于 02-15 15:53 ?8017次閱讀
    <b class='flag-5'>WebSocket</b>有什么優點

    鴻蒙上WebSocket的使用方法

    WebSocket 是一種網絡通訊協議,很多網絡開發工作者都需要它。本文介紹在 OpenHarmony 上 WebSocket 協議的使用方
    的頭像 發表于 03-08 14:17 ?1108次閱讀

    為什么有了HTTP,還需要WebSocket協議?

    HTTP是基于TCP協議的,同一時間里,客戶端和服務器只能有一方主動發數據,是半雙工通信。通常,打開某個網頁,我們每點擊一次網頁上的某個選項,前端就會發送一次HTTP請求,網站返回一次HTTP
    的頭像 發表于 01-12 15:54 ?518次閱讀
    為什么有了<b class='flag-5'>HTTP</b>,<b class='flag-5'>還需要</b><b class='flag-5'>WebSocket</b><b class='flag-5'>協議</b>?

    什么是HTTP協議?什么是RPC協議?二者如何選擇使用?

    為什么有了HTTP,還需要RPC協議呢?在進行說明之前,首先我們需要了解什么是HTTP協議,什么
    的頭像 發表于 08-11 09:25 ?1679次閱讀
    什么是<b class='flag-5'>HTTP</b><b class='flag-5'>協議</b>?什么是RPC<b class='flag-5'>協議</b>?二者如何選擇使用?

    使用變壓器變壓的電源還需要濾波器嗎

    使用變壓器變壓的電源還需要濾波器嗎
    的頭像 發表于 08-31 14:03 ?656次閱讀
    使用變壓器變壓的電源<b class='flag-5'>還需要</b>濾波器嗎

    websocket協議的原理

    WebSocket協議是基于TCP的一種新的網絡協議。它實現了瀏覽器與服務器全雙工(full-duplex)通信——允許服務器主動發送信息給客戶端。 WebSocket通信
    的頭像 發表于 11-09 15:13 ?506次閱讀
    <b class='flag-5'>websocket</b><b class='flag-5'>協議</b>的原理
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>