回覆列表
  • 1 # 此生唯一

    今天去面試,問到了HTTP長連線和短連線的區別,剛好來總結下!

    首先明白下什麼是HTTP?

    HTTP:Hypertext Transfer Protocol(超文字傳輸協議),是一種網路傳輸協議,HTTP只是定義了一套資料傳輸的標準,處於OSI七層模型中的應用層,所以說http連線是不標準的;

    真正實現定義並實現了資料傳輸協議的TCP,所以問題變為TCP長連線和TCP短連線的區別? 長和短又怎麼區分的呢?舉個很俗的例子,物慾橫流的今天,我們都知道一個詞--yy情,像這種一晚上或者一次的關係就是短,而像戀人朋友的關係就是長。

    TCP連線也是一樣的,如果在一次HTTP請求和響應結束之後,立馬斷開連線,就是TCP短連線;

    如果在一次請求和響應結束之後,沒有主動斷開連線,繼續為後面的請求響應提供連線,就是長連線;長連線的client和server為了保持連線,會有一個Connection的設定為keep-alive,這是一種心跳機制,client和server會以一定的頻率傳送訊息確認對方是否還線上,如果不線上那麼一段時間之後連線就會關閉,開啟baidu網,能看到在Request Heads和Response Heads兩個頭中都有這個配置,說明網頁多數使用的是長連線(事實上,現在的HTTP1.1預設都是長連線)

    那麼TCP長短連線之間有什麼區別與有缺點呢?

    長連線和短連線之間最為明顯的不同就是TCP連線的建立和關閉頻率,長連線維持對於客戶端來說可能沒有什麼影響,但是對服務端來說,如果有成千上萬的連線這種併發量較高的情況,那麼對於伺服器效能是有很大要求;

    如果是短連線,在一個網站開啟每個網頁或者做什麼操作都需要需要頻繁的建立和銷燬連線(三次握手,四次揮手瞭解一下),顯然這對於伺服器也是極大地資源浪費(可能包含頁面,圖片,靜態檔案等等大量資料);

    所以使用TCP長連線還是短連線還是要按照場景來定。http連線就說到這了,更多的技術分享,敬請關注。。

  • 中秋節和大豐收的關聯?
  • 都說女人是禍水人人看了都眼淚是哪首歌的歌詞?