APP应用 HTTP/1.0中keep-alive
生活随笔
收集整理的這篇文章主要介紹了
APP应用 HTTP/1.0中keep-alive
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
在HTTP/1.0中keep-alive不是標(biāo)準(zhǔn)協(xié)議,客戶端必須發(fā)送Connection:Keep-Alive來(lái)激活keep-alive連接。 https://www.imooc.com/article/31231 ? HTTP協(xié)議是無(wú)狀態(tài)的協(xié)議,即每一次請(qǐng)求都是互相獨(dú)立的。因此它的最初實(shí)現(xiàn)是,每一個(gè)http請(qǐng)求都會(huì)打開(kāi)一個(gè)tcp socket連接,當(dāng)交互完畢后會(huì)關(guān)閉這個(gè)連接。 ? HTTP協(xié)議是全雙工的協(xié)議,所以建立連接與斷開(kāi)連接是要經(jīng)過(guò)三次握手與四次揮手的。顯然在這種設(shè)計(jì)中,每次發(fā)送Http請(qǐng)求都會(huì)消耗很多的額外資源,即連接的建立與銷毀。 ? 于是,HTTP協(xié)議的也進(jìn)行了發(fā)展,通過(guò)持久連接的方法來(lái)進(jìn)行socket連接復(fù)用。?
從圖中可以看到:- HTTP協(xié)議通過(guò)持久連接的方式,減輕了早期設(shè)計(jì)中的過(guò)多連接問(wèn)題
- 持久連接有兩種方式:HTTP/1.0+的Keep-Avlive與HTTP/1.1的默認(rèn)持久連接
- HttpClient通過(guò)連接池來(lái)管理持久連接,連接池分為兩個(gè),一個(gè)是總連接池,一個(gè)是每個(gè)route對(duì)應(yīng)的連接池
- 默認(rèn)連接重用策略與HTTP協(xié)議約束一致,根據(jù)response先判斷Connection:Close則關(guān)閉,在判斷Connection:Keep-Alive則開(kāi)啟,最后版本大于1.0則開(kāi)啟
- 只有在HttpClientBuilder中手動(dòng)開(kāi)啟了清理過(guò)期與空閑連接的開(kāi)關(guān)后,才會(huì)清理連接池中的連接
- HttpClient4.4之后的版本通過(guò)一個(gè)死循環(huán)線程清理過(guò)期與空閑連接,該線程每次執(zhí)行都sleep一會(huì),以達(dá)到定期執(zhí)行的效果
轉(zhuǎn)載于:https://www.cnblogs.com/ww-xiaowei/p/10059197.html
總結(jié)
以上是生活随笔為你收集整理的APP应用 HTTP/1.0中keep-alive的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 梦到一群动物是什么意思
- 下一篇: 梦到别人头上有虱子这是怎么回事