HTTP的長連接和短連接

HTTP的長連接和短連接本質(zhì)上是TCP長連接和短連接克胳。HTTP屬于應用層協(xié)議.

短連接:瀏覽器和服務器每進行一次HTTP操作,就建立一次連接,但任務結(jié)束就中斷連接怪嫌。
長連接:當一個網(wǎng)頁打開完成后,客戶端和服務器之間用于傳輸HTTP數(shù)據(jù)的 TCP連接不會關閉柳沙,如果客戶端再次訪問這個服務器上的網(wǎng)頁岩灭,會繼續(xù)使用這一條已經(jīng)建立的連接。Keep-Alive不會永久保持連接赂鲤,它有一個保持時間噪径,可以在不同的服務器軟件(如Apache)中設定這個時間。實現(xiàn)長連接要客戶端和服務端都支持長連接数初。

TCP短連接:client向server發(fā)起連接請求找爱,server接到請求,然后雙方建立連接泡孩。client向server發(fā)送消息车摄,server回應client,然后一次讀寫就完成了仑鸥,這時候雙方任何一個都可以發(fā)起close操作吮播,不過一般都是client先發(fā)起 close操作。短連接一般只會在 client/server間傳遞一次讀寫操作

TCP長連接:client向server發(fā)起連接锈候,server接受client連接薄料,雙方建立連接。Client與server完成一次讀寫之后泵琳,它們之間的連接并不會主動關閉摄职,后續(xù)的讀寫操作會繼續(xù)使用這個連接。

TCP的被窳校活功能主要為服務器應用提供谷市。如果客戶端已經(jīng)消失而連接未斷開,則會使得服務器上保留一個半開放的連接击孩,而服務器又在等待來自客戶端的數(shù)據(jù)迫悠,此時服務器將永遠等待客戶端的數(shù)據(jù)。惫遥活功能就是試圖在服務端器端檢測到這種半開放的連接创泄。

如果一個給定的連接在兩小時內(nèi)沒有任何動作艺玲,服務器就向客戶發(fā)送一個探測報文段,根據(jù)客戶端主機響應探測4個客戶端狀態(tài):

客戶主機依然正常運行鞠抑,且服務器可達饭聚。此時客戶的TCP響應正常,服務器將备樽荆活定時器復位秒梳。

客戶主機已經(jīng)崩潰,并且關閉或者正在重新啟動箕速。上述情況下客戶端都不能響應TCP酪碘。服務端將無法收到客戶端對探測的響應。服務器總共發(fā)送10個這樣的探測盐茎,每個間隔75秒兴垦。若服務器沒有收到任何一個響應,它就認為客戶端已經(jīng)關閉并終止連接庭呜。
客戶端崩潰并已經(jīng)重新啟動滑进。服務器將收到一個對其保活探測的響應募谎,這個響應是一個復位扶关,使得服務器終止這個連接。
客戶機正常運行数冬,但是服務器不可達节槐。這種情況與第二種狀態(tài)類似。

長連接和短連接的優(yōu)點和缺點

由上可以看出拐纱,長連接可以省去較多的TCP建立和關閉的操作铜异,減少浪費,節(jié)約時間秸架。對于頻繁請求資源的客戶端適合使用長連接揍庄。在長連接的應用場景下,client端一般不會主動關閉連接东抹,當client與server之間的連接一直不關閉蚂子,隨著客戶端連接越來越多,server會保持過多連接缭黔。這時候server端需要采取一些策略食茎,如關閉一些長時間沒有請求發(fā)生的連接,這樣可以避免一些惡意連接導致server端服務受損馏谨;如果條件允許則可以限制每個客戶端的最大長連接數(shù)别渔,這樣可以完全避免惡意的客戶端拖垮整體后端服務。

短連接對于服務器來說管理較為簡單,存在的連接都是有用的連接哎媚,不需要額外的控制手段喇伯。但如果客戶請求頻繁,將在TCP的建立和關閉操作上浪費較多時間和帶寬抄伍。

長連接和短連接的產(chǎn)生在于client和server采取的關閉策略艘刚。不同的應用場景適合采用不同的策略管宵。

數(shù)據(jù)庫的連接用長連接截珍, 如果用短連接頻繁的通信會造成socket錯誤,而且頻繁的socket 創(chuàng)建也是對資源的浪費箩朴。 而像WEB網(wǎng)站的http服務一般都用短鏈接岗喉,因為長連接對于服務端來說會耗費一定的資源

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市炸庞,隨后出現(xiàn)的幾起案子钱床,更是在濱河造成了極大的恐慌,老刑警劉巖埠居,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件查牌,死亡現(xiàn)場離奇詭異,居然都是意外死亡滥壕,警方通過查閱死者的電腦和手機纸颜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绎橘,“玉大人胁孙,你說我怎么就攤上這事〕屏郏” “怎么了涮较?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長冈止。 經(jīng)常有香客問我狂票,道長,這世上最難降的妖魔是什么熙暴? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任闺属,我火速辦了婚禮,結(jié)果婚禮上怨咪,老公的妹妹穿的比我還像新娘屋剑。我一直安慰自己,他們只是感情好诗眨,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布唉匾。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪巍膘。 梳的紋絲不亂的頭發(fā)上厂财,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音峡懈,去河邊找鬼璃饱。 笑死,一個胖子當著我的面吹牛肪康,可吹牛的內(nèi)容都是我干的荚恶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼磷支,長吁一口氣:“原來是場噩夢啊……” “哼谒撼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起雾狈,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤廓潜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后善榛,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辩蛋,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年移盆,在試婚紗的時候發(fā)現(xiàn)自己被綠了悼院。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡味滞,死狀恐怖樱蛤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情剑鞍,我是刑警寧澤昨凡,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站蚁署,受9級特大地震影響便脊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜光戈,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一哪痰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧久妆,春花似錦晌杰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抑诸。三九已至,卻和暖如春爹殊,著一層夾襖步出監(jiān)牢的瞬間蜕乡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工梗夸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留层玲,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓反症,卻偏偏與公主長得像辛块,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子惰帽,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

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