HTTP KeepAlive,開啟還是關閉

2021-07-26 23:10:28 字數 688 閱讀 8200

所謂「http keep-alive」,在維基百科裡稱為「http persistent connection」,說白了就是復用http連線,如此一來理論上客戶端的使用者體驗會更流暢,但是與之相對服務端不得不維持大量的連線。開啟還是關閉,這是個問題。

乙個經常用來講解httpkeepalive的例子一般是這樣描述的:當我們訪問乙個包含了若干個的網頁時,如果httpkeepalive是關閉的,那麼頁面中每乙個都會發起是一次連線請求;但是如果httpkeepalive是開啟的,那麼因為可以復用http連線,所以可以節省很多不必要的開銷。

聽起來不錯!不過現在可不是用貓上網的年代了,當今高頻寬低延遲的網路讓建立http連線不再是什麼難事兒,此時訪問乙個包含了若干個的網頁時,與其開啟乙個連線然後序列的請求,不如開啟多個連線然後並行的請求,事實上現代瀏覽器也都是這麼幹的,最佳實戰甚至倡導通過多網域名稱進一步提公升併發數。

此外,再讓我們看看某台開啟了keepalive的nginx伺服器的status結果:

shell> curl -s 

active connections: 95896

server accepts handled requests

66542336512 66542336512 67713042963

reading: 1945 writing: 82 waiting: 93869

其中,各項結果的含義如下:

有關http Keep Alive 的詳細解釋

keep alive通俗地講,就是所謂的持久連線,對於http這種大量的短連線的服務來說,開啟持久連線的好處可以節省大量的tcp連線過程的開銷,據apache的官方文件稱對包含大量的html文件造成的延時起到50 的加速作用。而同時現有作業系統越來越先進,建立連線的開銷越來越小,像linux 2.6...

Visual Strudio無法開啟或開啟不正常

在開啟visual strudio的時候,彈出對話方塊讓提示你 校驗碼錯誤 各種情況下英文提示,不一定意思完全一樣,但總體意思是這個 不輸入vs就無法開啟,或者打不正常。這個時候你要注意了。分清楚是vs彈的對話方塊還是vs中裝的外掛程式或第三方庫之類彈的對話方塊或者報錯。這個可以從對話方塊內容和對話...

mysql log開啟 開啟MySQL log

今天開發問我,mysql有無操作日誌可查,呵呵,當然有了,不過預設情況下是沒有開啟的,開啟步驟如下 1,在 etc my.cnf mysqld後面新增log var lib mysql mysql.log 2,重啟mysql 3,驗證是否正常 root youxia64 mysql uroot p1...