HTTP連接管理

Http事務(wù)的時延:
(1)TCP建立連接握手
(2)TCP慢啟動擁塞控制
(3)數(shù)據(jù)聚集的Nagle算法
(4)用于捎帶確認(rèn)的TCP延遲確認(rèn)算法
(5)TIME_WAIT時延和端口耗盡
TCP握手時延:三次握手+四次揮手帶來時延膜毁;
TCP慢啟動時延:一開始會限制發(fā)送的分組的速度昭卓,避免擁塞控制;新建立的連接的傳輸速度會小于交換過一定量數(shù)據(jù)的連接瘟滨,這個會帶來時延候醒;
Nagle算法:TCP發(fā)送大量包含少量數(shù)據(jù)的分組,網(wǎng)絡(luò)的性能就會下降杂瘸;Nagle算法試圖在發(fā)送分組之前倒淫,會將大量的TCP分組捆綁在一起,以提高網(wǎng)絡(luò)的效率败玉;這樣就會導(dǎo)致小的HTTP分組無法填滿一個分組敌土,可能會一直等待其它數(shù)據(jù)的到來镜硕,導(dǎo)致時延;
延遲確認(rèn):確認(rèn)之后才能繼續(xù)發(fā)送報文返干;由于確認(rèn)報文非常的小兴枯,所以TCP允許把這個確認(rèn)捎帶在數(shù)據(jù)分組之中,而不是直接的發(fā)送這個確認(rèn)矩欠;延遲確認(rèn)算法會在一個時間之內(nèi)财剖,將確認(rèn)放在緩沖區(qū)之中,以尋找能夠捎帶它的分組癌淮,如果在那段時間內(nèi)沒有輸出分組躺坟,就將確認(rèn)以單獨的分組發(fā)送;
TIME_WAIT時延:2MSL

串行處理事務(wù)時延:
一個頁面嵌入了三張圖片乳蓄,需要發(fā)起四個Http請求咪橙;

串行處理事務(wù)

并行連接:通過多條TCP連接發(fā)起并發(fā)的HTTP請求;

并行連接

并行連接可能會提高頁面的加速度:時延重疊栓袖;如果單條連接沒有充分利用帶寬匣摘,就可以將其未用的帶寬分配來裝載其它對象;
并行連接不一定快:帶寬不足裹刮,導(dǎo)致每條連接都會以較慢的速度去加載音榜;大量連接還會消耗很多內(nèi)存,會導(dǎo)致服務(wù)器的性能下降捧弃;

并行連接的缺點:
每個事務(wù)都會打開/關(guān)閉一條連接赠叼,耗費時間和帶寬;
由于TCP的慢啟動特性的存在违霞,每條新連接性能的都會下降嘴办;
并行連接數(shù)是有限的;

持久連接:允許HTTP設(shè)備在事務(wù)處理結(jié)束之后將TCP連接保持在打開狀態(tài)买鸽,以便未來的HTTP請求重用現(xiàn)在的連接涧郊;在事務(wù)處理結(jié)束之后仍然保持在打開狀態(tài)的TCP連接叫做持久連接;非持久連接會在事件處理結(jié)束之后關(guān)閉,持久連接會在不同的事務(wù)之間保持打開狀態(tài)眼五;
持久連接的優(yōu)點:
降低時延和連接建立的開銷妆艘;
將連接保持在已經(jīng)調(diào)諧的狀態(tài);
減少了打開連接的潛在數(shù)量看幼;

持久連接+并行連接:
少量并行連接+持久連接批旺;

HTTP/1.0+keep-alive連接:
(1)客戶端通過Connection:keep-alive首部發(fā)送給服務(wù)端;
(2)服務(wù)器響應(yīng)首部包含相同的Connection:keep-alive首部诵姜;
(3)如果服務(wù)器響應(yīng)沒有Connection:keep-alive首部汽煮,客戶端就認(rèn)為服務(wù)器不支持keep-alive,會在處理完事務(wù)后關(guān)閉連接;
持久連接的方式:HTTP/1.0+keep-alive連接暇赤;

Keep-alive

keep-alive選項:
keep-alive選項只是請求將連接保持在活躍狀態(tài)心例,發(fā)送端和接收端并不一定同意進行keep-alive會話;可以在任意時刻關(guān)閉keep-alive連接翎卓;

keep-alive首部是可選的契邀,但是只有在提供Connection:keep-alive首部才能使用它;下面的實例 max,timeout都是服務(wù)器返回的失暴;表明服務(wù)器最多還會為5個事務(wù)保持連接狀態(tài)坯门,并且打開狀態(tài)在連接空閑之后,最多保持120s

keep-alive示例

HTTP/1.1持久連接:
(1)默認(rèn)持久連接
(2)要在事務(wù)處理完之后關(guān)閉連接逗扒,必須顯示的在報文中添加一個Connection:close首部
持久連接的限制和規(guī)則:
發(fā)送了Connection:close首部后古戴,客戶端就無法在那條連接上發(fā)送更多的請求了;
如果客戶端不想在某條連接上發(fā)送請求了矩肩,就應(yīng)該發(fā)送Connection:close首部现恼;
只有連接上所有報文都是正確的(實體部分長度==Content-length),連接才能持久黍檩;
HTTP/1.1可以在任意時刻關(guān)閉連接叉袍;
管道化連接:
HTTP/1.1可以在持久連接上選擇使用請求管道;在響應(yīng)到達之前刽酱,可以將多條請求放入隊列喳逛;當(dāng)?shù)谝粭l請求到達時u,可以發(fā)送第二條連接棵里;
管道化連接限制:
客戶端無法確認(rèn)是持久連接润文,就不應(yīng)該使用管道;
必須按照和請求相同的順序來回送HTTP響應(yīng)殿怜;
HTTP客戶端必須做好連接隨時關(guān)閉的準(zhǔn)備典蝌,還要準(zhǔn)備好重新發(fā)送未完成的請求;

串行連接
持久連接

管道化連接

TCP關(guān)閉:
半關(guān)閉:shutdown()
全關(guān)閉 : close()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末头谜,一起剝皮案震驚了整個濱河市骏掀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌柱告,老刑警劉巖砖织,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異末荐,居然都是意外死亡,警方通過查閱死者的電腦和手機新锈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門甲脏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事块请∧仁希” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵墩新,是天一觀的道長贸弥。 經(jīng)常有香客問我,道長海渊,這世上最難降的妖魔是什么绵疲? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮臣疑,結(jié)果婚禮上盔憨,老公的妹妹穿的比我還像新娘。我一直安慰自己讯沈,他們只是感情好郁岩,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著缺狠,像睡著了一般问慎。 火紅的嫁衣襯著肌膚如雪虾啦。 梳的紋絲不亂的頭發(fā)上梢夯,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機與錄音宁玫,去河邊找鬼驮樊。 笑死薇正,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的囚衔。 我是一名探鬼主播挖腰,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼练湿!你這毒婦竟也來了猴仑?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤肥哎,失蹤者是張志新(化名)和其女友劉穎辽俗,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體篡诽,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡崖飘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了杈女。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片朱浴。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡吊圾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出翰蠢,到底是詐尸還是另有隱情项乒,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布梁沧,位于F島的核電站檀何,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏廷支。R本人自食惡果不足惜频鉴,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望酥泞。 院中可真熱鬧砚殿,春花似錦、人聲如沸芝囤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽悯姊。三九已至羡藐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間悯许,已是汗流浹背仆嗦。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留先壕,地道東北人瘩扼。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像垃僚,于是被迫代替她去往敵國和親集绰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容