电竞比分网-中国电竞赛事及体育赛事平台

分享

http中長連接和websocket的長連接的區(qū)別

 jackeyqing 2019-03-14
一、什么是http協(xié)議
HTTP是一個應(yīng)用層協(xié)議,無狀態(tài)的,端口號為80。主要的版本有1.0/1.1/2.0.
  • HTTP/1.* 一次請求-響應(yīng),建立一個連接,用完關(guān)閉;
  • HTTP/1.1 串行化單線程處理,可以同時在同一個tcp鏈接上發(fā)送多個請求,但是只有響應(yīng)是有順序的,只有上一個請求完成后,下一個才能響應(yīng)。一旦有任務(wù)處理超時等,后續(xù)任務(wù)只能被阻塞(線頭阻塞);
  • HTTP/2 并行執(zhí)行。某任務(wù)耗時嚴(yán)重,不會影響到任務(wù)正常執(zhí)行
二、什么是websocket
Websocket是html5提出的一個協(xié)議規(guī)范,是為解決客戶端與服務(wù)端實時通信。本質(zhì)上是一個基于tcp,先通過HTTP/HTTPS協(xié)議發(fā)起一條特殊的http請求進行握手后創(chuàng)建一個用于交換數(shù)據(jù)的TCP連接。
WebSocket優(yōu)勢: 瀏覽器和服務(wù)器只需要要做一個握手的動作,在建立連接之后,雙方可以在任意時刻,相互推送信息。同時,服務(wù)器與客戶端之間交換的頭信息很小。
三、什么是長連接、短連接
  • 短連接:
連接->傳輸數(shù)據(jù)->關(guān)閉連接
HTTP是無狀態(tài)的,瀏覽器和服務(wù)器每進行一次HTTP操作,就建立一次連接,但任務(wù)結(jié)束就中斷連接。
也可以這樣說:短連接是指SOCKET連接后發(fā)送后接收完數(shù)據(jù)后馬上斷開連接。
  • 長連接、
連接->傳輸數(shù)據(jù)->保持連接 -> 傳輸數(shù)據(jù)-> 。。。 ->關(guān)閉連接。
長連接指建立SOCKET連接后不管是否使用都保持連接,但安全性較差。
四、http和websocket的長連接區(qū)別
HTTP1.1通過使用Connection:keep-alive進行長連接,HTTP 1.1默認(rèn)進行持久連接。在一次 TCP 連接中可以完成多個 HTTP 請求,但是對每個請求仍然要單獨發(fā) header,Keep-Alive不會永久保持連接,它有一個保持時間,可以在不同的服務(wù)器軟件(如Apache)中設(shè)定這個時間。這種長連接是一種“偽鏈接”
websocket的長連接,是一個真的全雙工。長連接第一次tcp鏈路建立之后,后續(xù)數(shù)據(jù)可以雙方都進行發(fā)送,不需要發(fā)送請求頭。
keep-alive雙方并沒有建立正真的連接會話,服務(wù)端可以在任何一次請求完成后關(guān)閉。WebSocket 它本身就規(guī)定了是正真的、雙工的長連接,兩邊都必須要維持住連接的狀態(tài)。
參考鏈接:
1.http和socket之長連接和短連接區(qū)別 https://www.jianshu.com/p/b68d2b26f5f4

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多