Http協(xié)議中關(guān)于Content-Length的解讀

Content-Length用于描述

在HTTP協(xié)議中瘟仿,有Content-Length的詳細(xì)解讀夫凸。Content-Length用于描述HTTP消息實(shí)體的傳輸長(zhǎng)度the transfer-length of the message-body屈尼。在HTTP協(xié)議中矮湘,消息實(shí)體長(zhǎng)度和消息實(shí)體的傳輸長(zhǎng)度是有區(qū)別览露,比如說(shuō)gzip壓縮下所灸,消息實(shí)體長(zhǎng)度是壓縮前的長(zhǎng)度丽惶,消息實(shí)體的傳輸長(zhǎng)度是gzip壓縮后的長(zhǎng)度。

1.在具體的HTTP交互中爬立,客戶端是如何獲取消息長(zhǎng)度的呢?

主要基于以下幾個(gè)規(guī)則:

* 響應(yīng)為1xx钾唬,204,304相應(yīng)或者h(yuǎn)ead請(qǐng)求,則直接忽視掉消息實(shí)體內(nèi)容知纷。
* 如果有Transfer-Encoding壤圃,則優(yōu)先采用Transfer-Encoding里面的方法來(lái)找到對(duì)應(yīng)的長(zhǎng)度。比如說(shuō)Chunked模式琅轧。
* “如果head中有Content-Length伍绳,那么這個(gè)Content-Length既表示實(shí)體長(zhǎng)度,又表示傳輸長(zhǎng)度乍桂。如果實(shí)體長(zhǎng)度和傳輸長(zhǎng)度不相等(比如說(shuō)設(shè)置了Transfer-Encoding)冲杀,那么則不能設(shè)置Content-Length。如果設(shè)置了Transfer-Encoding睹酌,那么Content-Length將被忽視”权谁。這句話翻譯的優(yōu)點(diǎn)饒,其實(shí)關(guān)鍵就一點(diǎn):有了Transfer-Encoding憋沿,則不能有Content-Length旺芽。
* 通過(guò)服務(wù)器關(guān)閉連接能確定消息的傳輸長(zhǎng)度。(請(qǐng)求端不能通過(guò)關(guān)閉連接來(lái)指明請(qǐng)求消息體的結(jié)束辐啄,因?yàn)檫@樣可以讓服務(wù)器沒(méi)有機(jī)會(huì)繼續(xù)給予響應(yīng))采章。這種情況主要對(duì)應(yīng)為短連接,即非keep-alive模式壶辜。
HTTP1.1必須支持chunk模式悯舟。因?yàn)楫?dāng)不確定消息長(zhǎng)度的時(shí)候,可以通過(guò)chunk機(jī)制來(lái)處理這種情況砸民。
* 在包含消息內(nèi)容的header中抵怎,如果有content-length字段,那么該字段對(duì)應(yīng)的值必須完全和消息主題里面的長(zhǎng)度匹配岭参。

######其實(shí)后面幾條幾乎可以忽視反惕,簡(jiǎn)單總結(jié)后如下:
1、Content-Length如果存在并且有效的話演侯,則必須和消息內(nèi)容的傳輸長(zhǎng)度完全一致姿染。(經(jīng)過(guò)測(cè)試,如果過(guò)短則會(huì)截?cái)喟霰荆^(guò)長(zhǎng)則會(huì)導(dǎo)致超時(shí)盔粹。)
2、如果存在Transfer-Encoding(重點(diǎn)是chunked)程癌,則在header中不能有Content-Length舷嗡,有也會(huì)被忽視。
3嵌莉、如果采用短連接进萄,則直接可以通過(guò)服務(wù)器關(guān)閉連接來(lái)確定消息的傳輸長(zhǎng)度。(這個(gè)很容易懂)
######結(jié)合HTTP協(xié)議其他的特點(diǎn),比如說(shuō)Http1.1之前的不支持keep alive中鼠。那么可以得出以下結(jié)論:
1可婶、在Http 1.0及之前版本中,content-length字段可有可無(wú)援雇。
2矛渴、在http1.1及之后版本。如果是keep alive惫搏,則content-length和chunk必然是二選一具温。若是非keep alive,則和http1.0一樣筐赔。content-length可有可無(wú)铣猩。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市茴丰,隨后出現(xiàn)的幾起案子达皿,更是在濱河造成了極大的恐慌,老刑警劉巖贿肩,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件峦椰,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡尸曼,警方通過(guò)查閱死者的電腦和手機(jī)们何,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門萄焦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)控轿,“玉大人,你說(shuō)我怎么就攤上這事拂封〔缟洌” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵冒签,是天一觀的道長(zhǎng)在抛。 經(jīng)常有香客問(wèn)我,道長(zhǎng)萧恕,這世上最難降的妖魔是什么刚梭? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮票唆,結(jié)果婚禮上朴读,老公的妹妹穿的比我還像新娘。我一直安慰自己走趋,他們只是感情好衅金,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般氮唯。 火紅的嫁衣襯著肌膚如雪鉴吹。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,598評(píng)論 1 305
  • 那天惩琉,我揣著相機(jī)與錄音豆励,去河邊找鬼。 笑死瞒渠,一個(gè)胖子當(dāng)著我的面吹牛肆糕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播在孝,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼诚啃,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了私沮?” 一聲冷哼從身側(cè)響起始赎,我...
    開(kāi)封第一講書(shū)人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎仔燕,沒(méi)想到半個(gè)月后造垛,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡晰搀,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年五辽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片外恕。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡杆逗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鳞疲,到底是詐尸還是另有隱情罪郊,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布尚洽,位于F島的核電站悔橄,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏腺毫。R本人自食惡果不足惜癣疟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望潮酒。 院中可真熱鬧睛挚,春花似錦、人聲如沸澈灼。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至委乌,卻和暖如春床牧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背遭贸。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工戈咳, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人壕吹。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓著蛙,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親耳贬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子踏堡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

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

  • 一、概念(載錄于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434閱讀 8,354評(píng)論 6 152
  • Http協(xié)議詳解 標(biāo)簽(空格分隔): Linux 聲明:本片文章非原創(chuàng)咒劲,內(nèi)容來(lái)源于博客園作者M(jìn)IN飛翔的HTTP協(xié)...
    Sivin閱讀 5,223評(píng)論 3 82
  • 深入淺出HTTP協(xié)議(WEB開(kāi)發(fā)和面試必備) 1.基礎(chǔ)概念篇 a.簡(jiǎn)介 HTTP是Hyper Text Trans...
    半世韶華憶闌珊閱讀 1,221評(píng)論 0 7
  • http協(xié)議有http0.9顷蟆,http1.0,http1.1和http2三個(gè)版本腐魂,但是現(xiàn)在瀏覽器使用的是htt...
    一現(xiàn)_閱讀 1,863評(píng)論 0 3
  • 本文整理自MIN飛翔博客 [1] 1. 概念 協(xié)議是指計(jì)算機(jī)通信網(wǎng)絡(luò)中兩臺(tái)計(jì)算機(jī)之間進(jìn)行通信所必須共同遵守的規(guī)定或...
    HoyaWhite閱讀 2,673評(píng)論 2 20