HTTPkeep-alive與TCP keepalive

keepalive瀏覽器

Http 協議中有一個keep-alive的狀態,Tcp 三次握手中也有一個keep-alive的狀態,從字面上看就多了一個'-',它們兩個是徹底不一樣的。
服務器

1、Http協議中的keep-alive:tcp

  在訪問一個頁面的過程當中,會請求不少次服務器去獲取不一樣的網頁內容,而http的每次請求都是無鏈接的,請求->發送->關閉,因此在屢次請求的過程當中會使用不一樣的tcp端口號和sockfd,這樣會發生屢次的斷開和連接tcp的過程,能夠想象這種狀況對於服務器而言是想當不利的。ide

下面是我作的一個實驗:個人搭建的服務器在一次網頁請求中發生的連接和斷開spa

wKioL1dmMtbj-4FlAACDFTJ4XNI307.png

能夠看出,整個過程發生了3次連接和關閉的過程。blog


而 http 中keep-alive的做用就是複用tcp,在瀏覽器請求服務器http服務時,ci

服務器將保持當前的tcp連接一段時間,這個時間是能夠經過keepalive_timeoutget

設置的。it

瀏覽器在HTTP1.1下的keep-alive都是默認開啓的。
io



2、TCP下的keepalive


TCP下的keepalive :

這個keepalive是一種檢測TCP連接情況的保險措施,它會每隔必定的時間就去

client發送個數據,經過client端的反應來採起相應的措施。


因此:徹底不一樣的兩個keepalive

相關文章
相關標籤/搜索