03_HTTP報文內的HTTP信息


HTTP通信過程包括從客戶端發(fā)往服務器端的請求以及從服務端返回客戶端的響應。


1搀继、HTTP報文

就是一大串通信過程里經(jīng)過HTTP處理后添加的報文。
其大致分為報文首部和報文主體兩塊翠语。兩者由最初出現(xiàn)的空行(CR+LF)來劃分叽躯,通常并不一定要有報文主體。


HTTP報文結構

2、編碼提升傳輸速率
a>報文主體和實體主體的差異

報文:HTTP通信的基本單位,8位組字節(jié)流組成性雄,通過HTTP通信傳輸横媚。
實體:請求或響應的有效載荷數(shù)據(jù)被傳輸拧揽,內容由實體首部和實體主體組成。

HTTP報文主體用于傳輸請求或響應的實體主體。
一般情況,報文主體等于實體主體袁辈,但是傳輸中進行編碼操作的時候,實體主體內容發(fā)生變化珠漂。


請求和響應報文結構

報文實例
b>壓縮傳輸?shù)膬热菥幋a

HTTP協(xié)議中的內容編碼功能就像用壓縮軟件壓縮東西一樣晚缩,對實體內容進行編碼壓縮,內容編碼后的實體由客戶端接受并解碼媳危。這可以壓縮傳輸內容荞彼,加快傳輸速度。
常見的內容編碼有gzip待笑、compress鸣皂、deflate、identity(不編碼)签夭。

c>分割發(fā)送的分塊傳輸編碼

HTTP通信過程中椎侠,請求的編碼實體資源尚未傳輸完成之前,瀏覽器無法顯示請求頁面我纪,傳輸大容量數(shù)據(jù)時候慎宾,通過數(shù)據(jù)分割成多塊,能讓瀏覽器逐步顯示頁面浅悉。這就是分塊傳輸編碼(Chunked Transfer Coding)。它將實體主體分成多個部分术健,每一塊用十六進制來標記,最后一塊使用0(CR+LF)來標記荞估。傳輸給客戶端咳促,由客戶端進行解碼恢復。

3勘伺、發(fā)送多種數(shù)據(jù)的多部分對象集合

MIME(Multipurpose Internet Mail Extensions, 多用途因特網(wǎng)郵件擴展),它允許郵件處理文本飞醉,圖片,視頻等多個不同類型的數(shù)據(jù)轴术,這使我們可以在郵件里寫入文字并添加多分附件成為了現(xiàn)實钦无。例如:圖片等二進制數(shù)據(jù)以ASCII碼字符串編碼方式表名,就是利用MIME來標記數(shù)據(jù)類型铃诬,在MIME擴展中會使用一種稱為多部分對象集合(Multipart)的方法,來容納多份不同類型的數(shù)據(jù)趣席。
相應的,HTTP協(xié)議中也采納了多部分對象集合想罕,發(fā)送的一份報文主體內可含有多類型實體,通常在圖片或文本文件等上傳時使用按价。
多部分對象集合包括:

  • multipart/form-data 在Web表單文件上傳使用


    form-data
  • multipart/byteranges 狀態(tài)碼206(Partial Content楼镐,部分內容)響應報文包含了多個范圍的內容時使用。


    byteranges

HTTP報文使用這個多部分對象集合的時候凄杯,需要在首部添加Content-type字段秉宿。
使用boundary字符串來劃分多部分
在boundary字符串指定的各個實體的起始行之前插入’--‘標記(--AaB03x、--THis_STRING_SEPARATES)
在多部分對象集合對應的字符串的最后插入’--‘標記(--AaB03x--)

多部分對象集合的每個部分類型中描睦,都可以含有首部字段。另外隔崎,可以在部分中潛逃使用多部分對象集合窑多。

4、獲取部分內容的范圍請求

過去埂息,用戶下載東西中斷了必須要從頭下載,為了解決這問題千康,要實現(xiàn)該功能需要指定下載的實體范圍拾弃,指定范圍發(fā)送的請求叫做范圍請求(Range Request)
對一份10000字節(jié)大小的資源,如果使用范圍請求豪椿,可以只請求5001~10000字節(jié)內的資源。這樣就算中斷了咳秉,也可以向服務端指明自己需要的資源字節(jié)范圍鸯隅,這些需要在首部字段中表名。
形式如下:
Range : bytes = 5001 - 10000
5001到10000的
Range : bytes = 5001 -
5001 到之后全部的
Range : bytes = -3000, 5000 - 7000
從頭到3000, 5000到7000的

范圍請求

針對范圍請求何之,響應會返回狀態(tài)碼為206 Partial Content的響應報文咽筋,另外,對于多重范圍的范圍請求悼潭,響應會在首部字段Content-Type標明multipart/byteranges后返回響應報文舞箍,如果服務器無法響應請求皆疹,返回狀態(tài)碼200 OK 和完整的實體內容。

5略就、內容協(xié)商返回最合適的內容

同一個Web網(wǎng)站可能有存著多分相同內容的頁面,如中文版和英文版窄绒,內容雖然相同崔兴,單語言不同。當瀏覽器默認語言為哪種敲茄,訪問相同的URI的Web頁面時,會對應返回哪種語言的Web頁面掏父,這樣的機制就叫做內容協(xié)商(Content Negotiation)秆剪。
這協(xié)商的請求會包含在首部字段

  • Accept
  • Accept-Charset
  • Accept-Encoding
  • Accept-Language
  • Content-Language

類型:
服務器驅動協(xié)商(Server-driven Negotiation)
服務器通過請求的首部字段為參考自動處理,但以瀏覽器直接發(fā)送的信息不一定能篩選出最優(yōu)的內容陶缺。
客戶端驅動協(xié)商(Agent-driven Negotiation)
用戶從瀏覽器顯示的可選項列表中選擇何什, 還可以利用JS腳本在Web頁面自動進行上述選擇。
透明協(xié)商(Transparent Negotiation)
上兩種方法的結合體。

自我回顧

1蛛砰、HTTP報文是什么黍衙?大致分為哪兩部分?
2琅翻、提升編碼傳輸速率的方法有哪些?
3聂抢、如何發(fā)送多部分對象集合棠众?
4、如何進行斷點傳輸闸拿?
5、內容協(xié)商機制是什么揽趾?

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末苛骨,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子奔缠,更是在濱河造成了極大的恐慌吼野,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闷哆,死亡現(xiàn)場離奇詭異单起,居然都是意外死亡,警方通過查閱死者的電腦和手機嘀倒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來灌危,“玉大人,你說我怎么就攤上這事沫勿∥痘欤” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵蔓挖,是天一觀的道長盗誊。 經(jīng)常有香客問我,道長哈踱,這世上最難降的妖魔是什么梨熙? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮邪财,結果婚禮上质欲,老公的妹妹穿的比我還像新娘。我一直安慰自己嘶伟,他們只是感情好,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布绊袋。 她就那樣靜靜地躺著铸鹰,像睡著了一般癌别。 火紅的嫁衣襯著肌膚如雪蹋笼。 梳的紋絲不亂的頭發(fā)上躁垛,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天缤苫,我揣著相機與錄音墅拭,去河邊找鬼。 笑死谍婉,一個胖子當著我的面吹牛,可吹牛的內容都是我干的镀迂。 我是一名探鬼主播唤蔗,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼箱季!你這毒婦竟也來了?” 一聲冷哼從身側響起藏雏,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤作煌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后奏寨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鹰服,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年仍源,在試婚紗的時候發(fā)現(xiàn)自己被綠了舔涎。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡嚎于,死狀恐怖,靈堂內的尸體忽然破棺而出袍睡,到底是詐尸還是另有隱情肋僧,我是刑警寧澤斑胜,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布止潘,位于F島的核電站辫诅,受9級特大地震影響,放射性物質發(fā)生泄漏炕矮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一档痪、第九天 我趴在偏房一處隱蔽的房頂上張望钢颂。 院中可真熱鬧,春花似錦殊鞭、人聲如沸尼桶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽小腊。三九已至,卻和暖如春秩冈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背丹锹。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留匾灶,地道東北人租漂。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像哩治,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子吞瞪,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內容