国产熟睡乱子伦视频_激情五月综网站点_中文字幕乱偷无码_国产日韩综合第一页_在线观看亚色视频区一区二_八戒八戒神马影院免费_国产av黄色电影_4hu四虎永久在线影院97年小娇妻_台湾佬自偷自拍情侣在线_秋霞成人永久免费网站

當(dāng)前位置: 首頁 >應(yīng)用方案 >技術(shù)應(yīng)用 >

HTTP傳輸協(xié)議與WebSocket協(xié)議詳解對比

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

HTTP傳輸協(xié)議與WebSocket協(xié)議詳解對比

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

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

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

應(yīng)用層協(xié)議

WebSocket是什么?

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

WebSocket協(xié)議怎樣建立連接?

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

建立WebSocket連接

建立WebSocket傳輸協(xié)議連接

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

WebSocket通信協(xié)議的實際用途

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

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

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

WebSocket協(xié)議

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

由于HTTP傳輸協(xié)議WebSocket傳輸協(xié)議都用于應(yīng)用程序通信,因此人們常常感到困惑,很難從這兩者中選擇一個。

WebSocket傳輸協(xié)議HTTP傳輸協(xié)議的選擇

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

WebSocket與HTTP協(xié)議

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

HTTP協(xié)議長輪詢
HTTP傳輸協(xié)議長輪詢

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

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

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

WebSocket協(xié)議HTTP協(xié)議

今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動化的發(fā)展,提升資源利用率,更多產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)和企業(yè)公眾號(微信號:cdebyte)進(jìn)行了解,也可以直接撥打400電話咨詢技術(shù)專員!


4000-330-990

https://www.wjx.cn/jq/84863372.aspx