成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊聊什么是WebSocket協議?

網絡 網絡優化
WebSocket 是HTML5開始提供的一種瀏覽器與服務器間進行全雙工通訊的網絡技術,一種基于 TCP 連接上進行全雙工通信的協議。

隨著科技發展,人們需求越來越多,生活的方方面面都離不開一些實時信息。比如:疫情期間在家協同辦公、疫情監控目標人的實時運動軌跡、社交中的實時消息、多玩家互動游戲、每秒瞬息萬變的股市基金報價、體育實況播放、音視頻聊天、視頻會議、在線教育等等,都可以借用WebSocket TCP鏈接可以讓數據飛起來。下面就聊一下WebSocket協議。

WebSocket 是HTML5開始提供的一種瀏覽器與服務器間進行全雙工通訊的網絡技術,一種基于 TCP 連接上進行全雙工通信的協議,相對于 HTTP 這種非持久的協議來說,WebSocket 是一個持久化網絡通信的協議。依靠這種技術可以實現客戶端和服務器端的長連接,雙向實時通信。

它不僅可以實現客戶端請求服務器,同時可以允許服務端主動向客戶端推送數據。是真正的雙向平等對話,屬于服務器推送技術的一種。在 WebSocket API 中,客戶端和服務器只需要完成一次握手,兩者之間就直接可以創建持久性的連接,并進行雙向數據傳輸。

「其他特點包括:」

  • 建立在 TCP 協議之上,服務器端的實現比較容易。
  • 與 HTTP 協議有著良好的兼容性。默認端口也是80和443,并且握手階段采用 HTTP 協議,因此握手時不容易屏蔽,能通過各種 HTTP 代理服務器。
  • 數據格式比較輕量,性能開銷小,通信高效。
  • 可以發送文本,也可以發送二進制數據。
  • 沒有同源限制,客戶端可以與任意服務器通信。
  • 協議標識符是ws(如果加密,則為wss),服務器網址就是 URL。
  • 協議標識符是ws(如果加密,則為wss),服務器網址就是 URL。
ws://xxx.ayunw.cn:80/some/path
wss://xxx.ayunw.cn:443/some/path

另外客戶端不只是瀏覽器,只要實現了ws或者wss協議的客戶端socket都可以和服務器進行通信。

先說一下為什么需要 WebSocket 協議?

在 Web 應用架構中,連接由 HTTP/1.0 和 HTTP/1.1 處理。HTTP 是客戶端/服務器模式中 請求一響應 所用的協議,在這種模式中,客戶端(一般是瀏覽器)向服務器提交 HTTP 請求,服務器響應請求的資源(例如 HTML 頁面)。

HTTP 是無狀態的,也就是說,它將每個請求當成唯一和獨立的。無狀態協議具有一些優勢,例如,服務器不需要保存有關會話的信息,從而不需要存儲數據。但是,這也意味著在每次 HTTP 請求和響應中都會發送關于請求的冗余信息,比如使用 Cookie 進行用戶狀態的驗證。

隨著客戶端和服務器之間交互的增加,HTTP 協議在客戶端和服務器之間通信所需要的信息量快速增加。

從根本上講,HTTP 還是 半雙工 的協議,也就是說,在同一時刻信息的流向只能單向的:客戶端向服務器發送請求(單向),然后服務器響應請求(單向)。半雙工方式的通信效率是非常低的。

同時 HTTP 協議有一個缺陷:通信只能由客戶端發起。

這種單向請求的特點,注定了如果服務器有狀態變化,是無法主動通知客戶端的。

為了能夠及時的獲取服務器的變化,我們嘗試過各種各樣的方式:

  • 輪詢(polling):每隔一段時間,就發出一個請求,了解服務器有沒有新的信息。不精準,有延時,大量無效數據交換。
  • 長輪詢( long polling):客戶端向服務器請求信息,并在設定的時間段內保持連接。直到服務器有新消息響應,或者連接超時,這種技術常常稱作“掛起GET”或“擱置POST”。占用服務器資源,相對輪詢并沒有優勢,沒有標準化。
  • 流化技術:在流化技術中,客戶端發送一個請求,服務器發送并維護一個持續更新和保持打開(可以是無限或者規定的時間段)的開放響應。每當服務器有需要交付給客戶端的信息時,它就更新響應。服務器從不發出完成 HTTP 響應。代理和防火墻可能緩存響應,導致信息交付的延遲增加。

上述方法提供了近乎實時的通信,但是它們也涉及 HTTP 請求和響應首標,包含了許多附加和不必要的首標數據與延遲。此外,在每一種情況下,客戶端都必須等待請求返回,才能發出后續的請求,而這顯著地增加了延退。同時也極大地增加了服務器的壓力。

什么是websocket協議?

Websocket其實是一個新協議,借用了HTTP的協議來完成一部分握手,只是為了兼容現有瀏覽器的握手規范而已。Websocket 是一種自然的全雙工、雙向、單套接字連接,解決了 HTTP 協議中不適合于實時通信的問題。

「一個典型的Websocket握手如下:」

GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
Origin: http://example.com

其中Websocket的核心如下,它告訴Apache、Nginx等服務器:注意,我發起的是Websocket協議,快點幫我找到對應的助理處理而不是那個老土的HTTP。

Upgrade: websocket
Connection: Upgrade

「服務器返回如下:」

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=
Sec-WebSocket-Protocol: chat

至此,HTTP已經完成它所有工作了,接下來就是完全按照Websocket協議進行了。

責任編輯:姜華 來源: 運維開發故事
相關推薦

2022-10-08 00:00:00

websocket協議HTTP

2021-02-05 08:42:21

云原生系統方式

2020-06-17 07:40:26

監控系統zabbix

2021-07-26 05:10:13

JavaJakarta EEJSR

2021-07-20 08:03:43

微服務應用程序

2020-07-02 14:30:12

SDNSDON交換機

2022-03-17 21:30:31

BRAS寬帶服務器

2023-05-14 19:18:07

2022-10-28 08:46:57

變革型領導IT

2010-07-14 17:12:38

STUN協議

2022-12-01 10:39:02

Matter網絡

2022-02-23 08:41:58

NATIPv4IPv6

2020-06-19 08:04:23

監控系統

2023-09-13 07:02:23

2021-11-26 00:06:04

Go函數代碼

2021-03-08 23:45:33

數字化轉型5G

2023-12-29 20:25:51

2010-06-09 14:12:39

網絡協議套件

2010-09-09 15:37:59

什么是網絡協議

2023-10-09 18:28:12

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产在线一区观看 | 欧美成人高清视频 | 国产一区二 | 欧洲尺码日本国产精品 | 亚洲福利网站 | 在线看免费 | 日日草天天干 | 一道本不卡视频 | 成人三级在线观看 | 国产精品久久久久久影视 | 欧美成人一区二区三区片免费 | 久久一二区| 欧美一级网站 | 欧美三区视频 | 黄色片免费在线观看 | 精品久久久久久久久久久 | 国产视频一视频二 | 国产精品18hdxxxⅹ在线 | 成人做爰www免费看视频网站 | 国产精品久久久久久久久久免费看 | 玖玖视频网 | 毛片韩国| 中文字幕一区二区三区不卡在线 | 天堂中文资源在线 | 国产精品精品视频一区二区三区 | 精品日韩欧美一区二区 | 国产欧美一区二区三区在线看 | 色综合久久88色综合天天 | 一本久久a久久精品亚洲 | 国产免费福利小视频 | 玖玖视频 | 国产成人精品一区二区三区视频 | 日日骑| 欧美成人免费在线视频 | 国产一区二区精品在线观看 | 国产高清精品一区二区三区 | 精品一区二区三区在线观看国产 | 亚洲福利一区 | 欧美大片在线观看 | 美女黄色在线观看 | 久久久女女女女999久久 |