keep-alive可以讓TCP連接被復(fù)用,避免不必要的斷開(kāi)與重新連接。從這個(gè)設(shè)定上看它絕對(duì)是個(gè)好東西,但并不是所有連接都適合用keep-alive。在不適合keep-alive的場(chǎng)景使用keep-alive反而會(huì)帶來(lái)負(fù)面影響。它實(shí)際上就是一種以?xún)?nèi)存換取網(wǎng)絡(luò)的策略。
當(dāng)一個(gè)頁(yè)面打開(kāi)時(shí),頁(yè)面需要請(qǐng)求js、css以及頁(yè)面上的圖片等。網(wǎng)絡(luò)請(qǐng)求是需要時(shí)間的,這些請(qǐng)求不會(huì)瞬間完成,但他們卻是瞬間發(fā)起的。瀏覽器的并發(fā)數(shù)限制一般允許6個(gè)并發(fā)請(qǐng)求,客戶(hù)端需要的前6個(gè)資源會(huì)被同時(shí)使用不同的連接向服務(wù)器發(fā)起請(qǐng)求。如果服務(wù)器對(duì)所有請(qǐng)求都使用keep-alive,那么打開(kāi)一個(gè)頁(yè)面就相當(dāng)于建立6個(gè)長(zhǎng)連接。如果頁(yè)面上需要加載的資源很多,或者程序有多個(gè)連接同時(shí)使用的需求,這個(gè)6個(gè)連接當(dāng)然可以有效的復(fù)用。但如果需要加載的資源少于6個(gè)呢?這就意味著,這些連接一次都不會(huì)被復(fù)用到,而服務(wù)器卻需要維持這個(gè)連接。這種情況keep-alive就沒(méi)有作用了。
普通的網(wǎng)頁(yè)通常都會(huì)超過(guò)6個(gè)資源需要加載,網(wǎng)頁(yè)中存在大量圖片是很正常的。但如果這資源開(kāi)啟了cache,也就是說(shuō)頁(yè)面二次訪問(wèn)時(shí)他們不會(huì)重新發(fā)起請(qǐng)求,那么頁(yè)面需求的資源就很有可能小于6個(gè),這種情況下keep-alive就成了個(gè)累贅。所以使用keep-alive時(shí)也要考慮緩存方面的設(shè)置,對(duì)于特殊的情況可能需要服務(wù)器判斷是否要為特定連接使用keep-alive。
keep-alive可以自己控制超時(shí)的時(shí)間。注意這個(gè)時(shí)間不是整個(gè)連接的壽命,而是當(dāng)這個(gè)連接空閑那么個(gè)時(shí)間后自動(dòng)斷開(kāi)。對(duì)于普通的靜態(tài)資源請(qǐng)求使用5到15秒超時(shí)的keep-alive比較合適,這些時(shí)間主要用于彌補(bǔ)網(wǎng)絡(luò)延遲。瀏覽器對(duì)這些資源的訪問(wèn)是接踵而至的,中間幾乎不會(huì)有間隔的時(shí)間,所以完全沒(méi)必要太長(zhǎng)的超時(shí)。對(duì)于一些程序連接也同樣可以使用這樣的短超時(shí),比如上一篇文章中的keep-alive和長(zhǎng)輪詢(xún)一起使用的情況??傊灰?qǐng)求是接連不斷的向服務(wù)器發(fā)起的,超時(shí)就沒(méi)必要太長(zhǎng)。
對(duì)于特定的程序,也可以設(shè)置個(gè)比較長(zhǎng)的超時(shí)。這種情況就應(yīng)該考慮一個(gè)成本問(wèn)題。是先斷開(kāi)連接等到需要時(shí)重新建立,還是讓服務(wù)器維持一段時(shí)間的連接。前者的開(kāi)銷(xiāo)在于網(wǎng)絡(luò),后者的開(kāi)銷(xiāo)在于內(nèi)存,這就比較不好把握了。比如一個(gè)瀑布流的頁(yè)面,滾動(dòng)條拖到末尾會(huì)自動(dòng)加載內(nèi)容,這時(shí)可能就會(huì)用一個(gè)超時(shí)比較長(zhǎng)的keep-alive,因?yàn)橛脩?hù)很可能會(huì)繼續(xù)加載更多,但是在此之前會(huì)先瀏覽已經(jīng)加載了的數(shù)據(jù)。
最后總結(jié)一下,在請(qǐng)求多而連續(xù)時(shí)適合使用keep-alive,其它情況一般沒(méi)必要使用,如果非要使用就得斟酌超時(shí)的設(shè)定。
本文來(lái)源于成都網(wǎng)站建設(shè)公司與成都網(wǎng)站設(shè)計(jì)制作公司-創(chuàng)新互聯(lián)成都公司!
網(wǎng)頁(yè)名稱(chēng):HTTPkeep-alive的適用性
文章URL:http://aaarwkj.com/news44/324044.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站建設(shè)、商城網(wǎng)站
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源:
創(chuàng)新互聯(lián)