http中長鏈接和websocket的長鏈接的區別

1、什麼是http協議html

HTTP是一個應用層協議,無狀態的,端口號爲80。主要的版本有1.0/1.1/2.0.html5

  • HTTP/1.* 一次請求-響應,創建一個鏈接,用完關閉;
  • HTTP/1.1 串行化單線程處理,
    • 能夠同時在同一個tcp連接上發送多個請求,
    • 可是隻有響應是有順序的,只有上一個請求完成後,下一個才能響應。
    • 一旦有任務處理超時等,後續任務只能被阻塞(線頭阻塞);
  • HTTP/2 並行執行。某任務耗時嚴重,不會影響到任務正常執行

2、什麼是websocketweb

  • Websocket是html5提出的一個協議規範,
    • 是爲解決客戶端與服務端實時通訊
  • 本質上是一個基於tcp,
    • 先經過HTTP/HTTPS協議發起一條特殊的http請求進行握手後
      • 建立一個用於交換數據的TCP鏈接。
  • WebSocket優點: 瀏覽器和服務器只須要要作一個握手的動做,
    • 在創建鏈接以後,雙方能夠在任意時刻,相互推送信息
    • 同時,服務器與客戶端之間交換的頭信息很小

3、什麼是長鏈接、短鏈接瀏覽器

4、http和websocket的長鏈接區別服務器

  • HTTP1.1經過使用Connection:keep-alive進行長鏈接,
    • HTTP 1.1默認進行持久鏈接。
  • 在一次 TCP 鏈接中能夠完成多個 HTTP 請求,
    • 可是對每一個請求仍然要單獨發 header,
    • Keep-Alive不會永久保持鏈接,它有一個保持時間,
    • 能夠在不一樣的服務器軟件(如Apache)中設定這個時間。
    • 這種長鏈接是一種「僞連接
  • websocket的長鏈接,
    • 是一個真的全雙工。
    • 長鏈接第一次tcp鏈路創建以後,
    • 後續數據能夠雙方都進行發送,不須要發送請求頭
  • keep-alive雙方並無創建正真的鏈接會話,
    • 服務端能夠在任何一次請求完成後關閉
    • WebSocket 它自己就規定了是正真的、雙工的長鏈接,
      • 兩邊都必需要維持住鏈接的狀態。
相關文章
相關標籤/搜索