搜索曆史

清除曆史

熱門搜索

網絡工作室網站建設seo優化小程序

零基礎幹貨

零基礎幹貨

SERVICE CENTER

Httpwebrequest keepaliv風國e釋義

網站建設 2021/12/13 20:31:11   坐坐 管理員    閱讀 583

KeepAlive出現的原因:

當一個客戶端向(xiàng)服務器發(fā)送http請求時(shí高頻),兩(liǎng)者之間會(huì)建立一個tc討弟p連接,然後(hòu)服務器發(fā)回響應信息同時(shí)對作關閉連接。如果請求的的頁面(miàn)中含有别就玩的資源連接,比如圖片、flsah等,就(jiù)會(huì)再次創建連照討接。KeepAlive的作用就(jiù)是在第一次創建連接舞樹時(shí),服務器會(huì)把這(zhè)個tcp連接保持一段時(shí低笑)間(服務器端會(huì)有一個keepaliveTime的最大時(sh東年í)間,超過(guò)時(shí)間師路就(jiù)斷開(kāi)連接)。這(zhè)樣(yàng)就(東請jiù)不會(huì)頻繁的去建立tcp連接,同一次請求湖師中的信息傳遞都(dōu)可以使用同一個tcp連接。


KeepAlive的工作原理:

在HTTP1.0和HTTP1.1協議中都機山(dōu)有對(duì)KeepAlive的你煙支持。其中HTTP1.0需要在request中增加“Connection: 體事keep-alive” header才能(河謝néng)夠支持,而HTTP1.1默認支持。



HTTP1.0 KeepAlive支持的數據交互流程如下:

a)Client發(fā)出request,其中該request的HTTP版那煙本号為1.0。同是在request中包含一個header:“Conne機通ction: keep-alive”。

b)Web Server收到request中的HTTP協議為1.0及“Con報體nection: keep-alive”就(jiù)認為是一個長(cháng睡唱)連接請求,其將(jiāng)在response的header中也增加“Con了風nection: keep-alive”。同是不會(huì)關閉已建立的t刀新cp連接。

c)Client收到Web Se低讀rver的response中包女湖含“Connection: keep-al亮木ive”,就(jiù)認為是一個長(ch森新áng)連接,不close tcp連接。并用該tcp連接再發(fā)送雨城request。(跳轉到a))




HTTP1.1 KeepAlive支持的數據交互答技流程如下:

a)Client發(fā)出request,其聽化中該request的HTTP版本号上也為1.1。

b)Web Server收到request中的HTTP協議為1.1就(jiù化林)認為是一個長(cháng)連接請求,其將(j短坐iāng)在response的header中也增加“Connection:門紙 keep-alive”。同是不會(huì)關閉已建立的tcp業事連接。

c)Client收到Web S是頻erver的response中包含“Connection: keep到好-alive”,就(jiù)認為是一個長(cháng)動制連接,不close tcp連接。并用該tcp連接再發(fā)送日做request。(跳轉到a))


關于KeepAlive的分析:

現在的一些服務器都(dōu)可以設置KeepAlive高雪是否開(kāi)啟,以及KeepAlive的超時(shí)時(sh劇算í)間,服務器支持的KeepAlive數量(數量一般不睡都會(huì)很大,否則會(huì)對(duì)服務器産生很大的壓力)。

那麼(me)我們考慮3種(zhǒng)情況:

  1、用戶浏覽一個網頁時(shí),除了網頁本身外,還(信錯hái)引用了多個 javascript 文件,多個 cs道聽s 文件,多個圖片文件,并且這(zhè)些輛畫文件都(dōu)在同一個 HTTP 服務器上。筆讀

  2、用戶浏覽一個網頁時(shí),除了網頁本身外,還(hái)引用一個 鄉舊javascript 文件,一個圖片文件。

  3、用戶浏覽的是一個動态網頁,由程序即時(答照shí)生成(chéng)内容,并且是科不引用其他内容。



對(duì)于上面(miàn)3中情況,1 最适很的合打開(kāi) KeepAlive ,2 随意,3 最适合關閉 Keep民志Alive

打 開(kāi) KeepAlive 後(hòu),意味著(zh木那e)每次用戶完成(chéng)全部訪問後(hòu),都(dōu)要保持一定時數裡(shí)間後(hòu)才關閉會(huì)關閉 TCP 連通也接,那麼(me)在關閉連接之前,必然會(huì)厭票有一個服務器進(jìn)程對(duì)應于該用戶而不能能嗎(néng)處理其他用戶,假設 KeepAlive 的超時(shí)時(sh物慢í)間為 10 秒種(zhǒng),服務器每秒處理 50 個獨立用戶訪問,那麼家要(me)系統中 Apache 的總進(jìn)程數個服就(jiù)是 10 * 50 = 500 個,如果一車暗個進(jìn)程占用 4M 内存,那麼(me)總共會(h讀自uì)消耗 2G 内存,所以可以看出,在這(zh好秒è)種(zhǒng)配置中,相當消耗内存,件能但好(hǎo)處是系統隻處理了 50次 TCP作低 的握手和關閉操作。



如果關閉 KeepAlive,如雜光果還(hái)是每秒50個用戶訪問,如果用戶每次連續的請求數為3暗大個,那麼(me) Apache 的化動總進(jìn)程數就(jiù)是 50 * 3 = 150 個,如果金什還(hái)是每個進(jìn)程占用 4M 内存,那麼師算(me)總的内存消耗為 600M,這(zh花火è)種(zhǒng)配置能(néng)節省大量内存商離,但是,系統處理了 150 次 器醫TCP 的握手和關閉的操作,因此又會(huì)多消耗一些 CPU 資源。

————————————————

版權聲明:本文為CSDN博主「H-G-Y」的原創文章,遵循CC 4.0 BY微分-SA版權協議,轉載請附上原文出來下處鍊接及本聲明。

原文鍊接:https://blog.csdn.net/go_to_learn就章/article/details/8147673


TAG标簽:HttpWebRequestKeepAlive
鍊接地址:
鄭重聲明:以上内容來源自玖捌網絡工作室,轉載見章請注明出處!

兼顧高品質與個性化的界面(miàn)設計

網站無須三方授權 · 安全穩定、維護方便

玖捌網絡工作室
18972931619
掃碼獲取最新報價
0.072267