什麼時候採用socket通訊,什麼時候採用http通訊
什麼時候採用socket通訊,什麼時候採用http通訊。
問題1:什麼是socket通訊,什麼是http通訊。
- socket通訊是對TCP/IP協議的封裝(封裝了tcp/ip協議讓我們操作更加方便),http協議是應用層協議。
問題2:兩者的區別
- Http連線:http連線就是所謂的短連線,及客戶端向伺服器傳送一次請求,伺服器端相應後連線即會斷掉。
- socket連線:socket連線是長連線,理論上客戶端和服務端一旦建立連線,則不會主動斷掉;但是由於各種環境因素可能會是連線斷開,比如說:伺服器端或客戶端主機down了,網路故障,或者兩者之間長時間沒有資料傳輸,網路防火牆可能會斷開該連結已釋放網路資源。所以當一個socket連線中沒有資料的傳輸,那麼為了位置連續的連線需要傳送心跳訊息,具體心跳訊息格式是開發者自己定義的。
問題3:使用場景
- Http連線使用的是“請求一響應”的方式,當請求連線數少,或者一個請求一個響應這種場景可以考慮Http請求,比如web應用。
- socket連線是長連線,適合請求較多,或者伺服器端主動向客戶端推送資料這種場景,比如QQ等。
相關文章
- 什麼時候該採用結對程式設計?程式設計
- C++中什麼時候用move,什麼時候用forward?C++Forward
- 在Linux中,我們都知道,dns採用了tcp協議,又採用了udp協議,什麼時候採用tcp協議?什麼 時候採用udp協議?為什麼要這麼設計?LinuxDNSTCP協議UDP
- 什麼時候該用vuex?Vue
- 什麼時候該用MongoDB?MongoDB
- EJB2.0中什麼時候用local interface,什麼時候用remote interface (轉)REM
- 什麼時候用有狀態session bean,什麼時候用無狀態session bean (轉)SessionBean
- 即時通訊和即時通訊的區別是什麼,都有什麼特點?
- Python的類什麼時候用Python
- 什麼時候用linux系統多Linux
- 即時通訊視訊聊天原理是什麼
- 舉例說明你什麼時候會用抽象類,什麼時候更願意使用介面?抽象
- 什麼時候釋出
- 什麼時候呼叫layoutSubviewsView
- 什麼時候能解脫
- jquery裡面的$(this)和this都什麼時候用,有什麼區別jQuery
- 新版什麼時候釋出?
- 到底什麼時候使用mqMQ
- vue3中什麼時候封裝成元件? 什麼時候封裝成指令? 通過例項告訴你(typescript)Vue封裝元件TypeScript
- TRIZ課堂—什麼時候可以用分割原理?
- 挑選http時候需要注意什麼問題HTTP
- Http協議什麼時候發生options請求?HTTP協議
- Haskell程式設計精華:什麼時候該註釋,什麼時候不該註釋Haskell程式設計
- 樂訊通雲通訊:物聯網路卡是做什麼用的?
- 採用管道進行通訊的例子
- beego 什麼時候支援grpcGoRPC
- python什麼時候縮排Python
- session是什麼時候建立的Session
- Mybatis什麼時候需要宣告jdbcType?MyBatisJDBC
- 什麼時候使用z-index?Index
- 什麼時候使用 Lambda 函式?函式
- 什麼時候Linux才能完美?Linux
- 什麼時候Haskell快於CHaskell
- SQL Server-聚焦什麼時候用OPTION(COMPILE)呢?SQLServerCompile
- win11什麼時候釋出的 win11什麼時候推送詳細介紹
- request.getParameter("name")什麼時候獲取的引數是null,什麼時候為""空字串Null字串
- 什麼是介面?為什麼使用介面? 什麼時候使用介面?(轉)
- koa-socket即時通訊