HTTP協(xié)議

一.簡(jiǎn)介

?http是基于tcp/ip傳輸協(xié)議的一個(gè)超文本,無(wú)狀態(tài)的應(yīng)用協(xié)議谁榜。設(shè)計(jì)http協(xié)議的目的是能夠方便高效的傳輸html數(shù)據(jù)。默認(rèn)用80端口。

一個(gè)www.baidu.com的過(guò)程

1.對(duì)baidu.com的網(wǎng)址進(jìn)行dns解析

2.解析出ip地址总珠,找到對(duì)應(yīng)的服務(wù)器。

3.建立tcp連接

4.通過(guò)http協(xié)議傳輸文本信息到服務(wù)器

5.服務(wù)器接收消息伊约,通過(guò)http協(xié)議返回html

6.瀏覽器解析html,并請(qǐng)求靜態(tài)資源

7.瀏覽器進(jìn)行渲染姚淆。


二.http的歷史

http最開(kāi)始是0.9版本孕蝉,只支持get

http1.0支持了很多功能?并且規(guī)范了請(qǐng)求header信息屡律。

那時(shí)候一個(gè)tcp連接就處理一個(gè)http請(qǐng)求,并且請(qǐng)求結(jié)束后斷開(kāi)tcp降淮。

這時(shí)候的缺點(diǎn)是?一個(gè)tcp只能處理一個(gè)http請(qǐng)求超埋,隨著請(qǐng)求量增加,每次建立tcp會(huì)產(chǎn)生大量網(wǎng)絡(luò)開(kāi)銷佳鳖,性能差霍殴。

http1.1的發(fā)展支持了tcp keep-alive,并且使用管道技術(shù),以前http請(qǐng)求需要等上次請(qǐng)求完成后才能發(fā)下一個(gè)請(qǐng)求系吩。運(yùn)用管道技術(shù)来庭,可以不用等上次請(qǐng)求返回再發(fā)下次請(qǐng)求。例如:

同一個(gè)tcp連接

client ->A請(qǐng)求->服務(wù)端

client->B請(qǐng)求->服務(wù)端

服務(wù)端->A回應(yīng)->client

服務(wù)端->B回應(yīng)->client

缺點(diǎn):http1.1雖然實(shí)現(xiàn)了tcp連接復(fù)用穿挨,但是如果出現(xiàn)A請(qǐng)求處理過(guò)長(zhǎng)月弛,后續(xù)的請(qǐng)求還是會(huì)進(jìn)行阻塞,也叫頭阻塞科盛。而且http1.1的頭報(bào)文每行還是會(huì)有無(wú)數(shù)據(jù)意義的換行符帽衙,浪費(fèi)網(wǎng)絡(luò)帶寬。

http2

二進(jìn)制

我們知道http1.1的頭信息編碼肯定是ASCII碼贞绵,數(shù)據(jù)傳輸可以是文本也可以是二進(jìn)制厉萝。http2是完完全全的二進(jìn)制協(xié)議傳輸。http2的二進(jìn)制數(shù)據(jù)統(tǒng)稱為幀(frame),二進(jìn)制定義幀含義,解析方便谴垫。

多工

http2是復(fù)用tcp連接章母,用的是二進(jìn)制幀傳輸,不用保證數(shù)據(jù)傳輸順序翩剪,多個(gè)請(qǐng)求可以同時(shí)請(qǐng)求胳施。

舉例來(lái)說(shuō),在一個(gè)TCP連接里面肢专,服務(wù)器同時(shí)收到了A請(qǐng)求和B請(qǐng)求舞肆,于是先回應(yīng)A請(qǐng)求,結(jié)果發(fā)現(xiàn)處理過(guò)程非常耗時(shí)博杖,于是就發(fā)送A請(qǐng)求已經(jīng)處理好的部分椿胯, 接著回應(yīng)B請(qǐng)求,完成后剃根,再發(fā)送A請(qǐng)求剩下的部分哩盲。

這樣雙向的、實(shí)時(shí)的通信狈醉,就叫做多工廉油。

數(shù)據(jù)流

數(shù)據(jù)流不用保證順序,那就得標(biāo)記哪個(gè)數(shù)據(jù)包是哪個(gè)請(qǐng)求的苗傅,所以就需要標(biāo)記數(shù)據(jù)id抒线。規(guī)定客戶端是奇數(shù),服務(wù)端是偶數(shù)渣慕。并且可以在不斷開(kāi)tcp連接的情況下發(fā)送信號(hào)斷開(kāi)數(shù)據(jù)流嘶炭。

數(shù)據(jù)壓縮

http2也對(duì)對(duì)頭信息進(jìn)行壓縮,并且客戶端和服務(wù)端都維護(hù)了一個(gè)頭信息hash表逊桦,這樣每次傳輸只用傳索引號(hào)就行了眨猎。節(jié)省網(wǎng)絡(luò)帶寬,提供速度强经。

服務(wù)器主動(dòng)推送

對(duì)于瀏覽器解析服務(wù)器返回的html后睡陪,需要請(qǐng)求靜態(tài)資源。http2考慮到瀏覽器可能會(huì)去請(qǐng)求靜態(tài)資源匿情,所以在返回html的時(shí)候兰迫,主動(dòng)吧靜態(tài)資源推送給瀏覽器。

三.https

?https是為了保證傳輸數(shù)據(jù)的安全性提出的對(duì)于http加密的方式码秉。實(shí)際上是在http傳輸過(guò)程中加了一層SSL逮矛,是對(duì)tcp數(shù)據(jù)包的加密。

https的請(qǐng)求流程

1.瀏覽器把自己支持的加密算法转砖,ssl版本號(hào)發(fā)給服務(wù)端

2.服務(wù)端接受后向客戶端發(fā)送加密算法须鼎,ssl版本號(hào)確認(rèn)是否支持鲸伴。

服務(wù)端把證書(shū)和公鑰都發(fā)給瀏覽器

3.瀏覽器驗(yàn)證證書(shū)是否ok,成功后晋控,隨機(jī)生成一個(gè)預(yù)見(jiàn)秘鑰汞窗,并用公鑰對(duì)其加密發(fā)送服務(wù)端。

4.服務(wù)端接收到加密后預(yù)見(jiàn)秘鑰后用CA的私鑰對(duì)其解密赡译,解密后仲吏,計(jì)算出會(huì)話秘鑰。

5.客戶端也自己計(jì)算出會(huì)話秘鑰蝌焚。

6.服務(wù)端計(jì)算完后就通知客戶端可以用會(huì)話秘鑰傳輸數(shù)據(jù)了裹唆。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市只洒,隨后出現(xiàn)的幾起案子许帐,更是在濱河造成了極大的恐慌,老刑警劉巖毕谴,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件成畦,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡涝开,警方通過(guò)查閱死者的電腦和手機(jī)循帐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)舀武,“玉大人拄养,你說(shuō)我怎么就攤上這事∞忍辏” “怎么了衷旅?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)纵朋。 經(jīng)常有香客問(wèn)我,道長(zhǎng)茄袖,這世上最難降的妖魔是什么操软? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮宪祥,結(jié)果婚禮上聂薪,老公的妹妹穿的比我還像新娘。我一直安慰自己蝗羊,他們只是感情好藏澳,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著耀找,像睡著了一般翔悠。 火紅的嫁衣襯著肌膚如雪业崖。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天蓄愁,我揣著相機(jī)與錄音双炕,去河邊找鬼。 笑死撮抓,一個(gè)胖子當(dāng)著我的面吹牛妇斤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播丹拯,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼站超,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了乖酬?” 一聲冷哼從身側(cè)響起顷编,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎剑刑,沒(méi)想到半個(gè)月后媳纬,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡施掏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年钮惠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片七芭。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡素挽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出狸驳,到底是詐尸還是另有隱情预明,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布耙箍,位于F島的核電站撰糠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏辩昆。R本人自食惡果不足惜阅酪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望汁针。 院中可真熱鬧术辐,春花似錦、人聲如沸施无。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)猾骡。三九已至瑞躺,卻和暖如春敷搪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背隘蝎。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工购啄, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嘱么。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓狮含,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親曼振。 傳聞我的和親對(duì)象是個(gè)殘疾皇子几迄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

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