http與websocket的關係

http

  1. http是應用層協議,是基於tcp協議的,所以http建立連接的時候必須要經過三次握手。
  2. 每一次交換都是客戶端主動發起請求(request),服務端被動應答(response)。
  3. 服務器不能主動向客戶端推送數據。
  4. 通信的數據是基於文本格式的。二進制數據(比如圖片等)要轉化爲base64編碼文本後才能傳輸。

長連接和短連接

短連接:是每次請求都要三次握手建立連接才能發送信息,完成一次通信之後就把連接斷開。發送消息過程中一個request對應一個response

長連接:建立連接了在一段時間內保持連接,tcp不會斷開。客戶端與服務器通信,必須由客戶端發起request,然後服務器返回結果。即客戶端是主動的,服務器是被動的。

 

websocket

WebSocket是HTML5規範提出的一種協議,它是封裝在socket協議的上層協議。它是爲了解決 客戶端發起多個http請求服務器資源 必須要經過長時間輪詢的問題而產生的,它能實現多路複用。

  1. websocket建立連接時,數據是通過http傳輸的,建立連接後就不需要http協議了。
  2. websocket建立連接後就是全雙工模式,也是基於tcp協議。
  3. 建立連接之後,不必在瀏覽器(客戶端)發送request之後服務器才能發送信息到瀏覽器,這時候服務器有主動權,可以隨時發消息給瀏覽器(客戶端)。
  4. 發送的信息中不必帶有head部分信息了,相對於http來說,降低了服務器的壓力,極大的減少了不必要的網絡流量與延遲。

 

 websocket與http的關係

  • 相同點:

1.都是基於tcp協議,都需要三次握手建立連接,都是可靠傳輸協議

2.都是應用層協議

  • 區別:

1.websocket是雙向通信協議,模擬socket協議,而http是單向的。

2.websocket需要瀏覽器(客戶端)和服務器握手進行連接的,而http是瀏覽器發起向服務器的連接,服務器預先並不知道這個連接。

 


參考:

https://www.cnblogs.com/guoke-jsp/p/5782653.html

https://blog.csdn.net/yamaxifeng_132/article/details/83583497

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章