HTTP

一杠茬、說一下HTTP

  • HTTP是應(yīng)用層的協(xié)議。
  • 是基于TCP的瞭恰,所以也需要先建立TCP的連接屯曹,再發(fā)送HTTP的請(qǐng)求。
  • HTTP的請(qǐng)求報(bào)文分成三部分惊畏,第一部分是請(qǐng)求行恶耽,第二部分是請(qǐng)求的首部,第三部分才是請(qǐng)求的正文實(shí)體陕截。
    1驳棱、在請(qǐng)求行中批什,標(biāo)明了HTTP的版本农曲、URL,還有方法驻债。
    ? a.方法最常用的有GET乳规,就是從服務(wù)端中獲取一些資源。
    ? b.另一種方法就是POST合呐,它主動(dòng)向服務(wù)器推一些數(shù)據(jù)暮的,內(nèi)容一般放在正文中。
    ? c.還有一種方法是PUT淌实,就是向指定資源位置上傳最新內(nèi)容冻辩。
    ? d.還有一種是DELETE,用來刪除資源拆祈。
    2恨闪、首部是key value的結(jié)構(gòu)。
    ? a.Accept-Charset放坏,表示客戶端可以接受的字符集咙咽,防止傳過來的是另外的字符集,從而導(dǎo)致亂碼淤年。
    ? b.Content-Type钧敞,表示正文的格式,比如說JSON麸粮。
  • 瀏覽器會(huì)通過socket將HTTP請(qǐng)求報(bào)文交給傳輸層溉苛,通過網(wǎng)絡(luò)協(xié)議棧層層處理后,發(fā)送給相應(yīng)的服務(wù)器弄诲。
  • HTTP的返回報(bào)文也分為三部分炊昆,狀態(tài)行、首部、正文實(shí)體凤巨。
    1视乐、狀態(tài)行中,標(biāo)明了狀態(tài)碼敢茁、HTTP版本等信息佑淀。
    ? a.狀態(tài)碼反映了HTTP請(qǐng)求的結(jié)果。200表示成功彰檬,404表示服務(wù)器無(wú)法響應(yīng)這個(gè)請(qǐng)求伸刃。
    2、首部是key value的數(shù)據(jù)結(jié)構(gòu)逢倍。
    ? a.里面也有Content-Type捧颅,表示正文的格式,比如是HTML還是JSON较雕。

二碉哑、說一下HTTP 2.0

  • HTTP 2.0在HTTP 1.1的基礎(chǔ)上進(jìn)化。
  • HTTP 1.1在每次通信時(shí)亮蒋,都需要攜帶完整的頭部信息扣典,HTTP 2.0對(duì)HTTP的頭進(jìn)行了壓縮,方法是將每次都需要攜帶的key value在兩端做一個(gè)索引表慎玖,相同的頭只發(fā)送索引表中的索引贮尖。
  • HTTP 2.0將一個(gè)TCP連接分成多個(gè)流,每個(gè)流有自己的ID趁怔,而且流可以是客戶端發(fā)往服務(wù)端湿硝,也可以是服務(wù)端發(fā)給客戶端。流其實(shí)是一個(gè)虛擬的通道润努。
  • HTTP 2.0還將傳輸信息分割成更小的消息和幀关斜,并采用二進(jìn)制格式編碼。比如說Header幀任连,傳輸Header的內(nèi)容蚤吹,Data幀,傳輸正文實(shí)體随抠。
  • HTTP 1.1的請(qǐng)求是串行的裁着,下一個(gè)請(qǐng)求的發(fā)送需要等待上一個(gè)請(qǐng)求的相應(yīng);HTTP 2.0通過分流和拆解傳輸信息拱她,實(shí)現(xiàn)了在一個(gè)連接里二驰,客戶端和服務(wù)端可以同時(shí)發(fā)送多個(gè)請(qǐng)求或響應(yīng),且不用按照順序一對(duì)一對(duì)應(yīng)秉沼。
  • 所以桶雀,HTTP 2.0也解決了隊(duì)首堵塞的問題矿酵,不需要使用多條TCP連接來實(shí)現(xiàn)并行請(qǐng)求和響應(yīng),減少了TCP連接數(shù)對(duì)于服務(wù)器性能的影響矗积。

三全肮、說一下HTTPS

  • HTTPS就是在HTTP協(xié)議的基礎(chǔ)上,對(duì)通信進(jìn)行加密的協(xié)議棘捣。
  • 加密的方式一般有非對(duì)稱加密和對(duì)稱加密辜腺。
    1、對(duì)稱加密乍恐,指的是加密和解密使用的是同一個(gè)密鑰评疗。
    2、非對(duì)稱加密茵烈,指的是加密和解密不使用同一個(gè)密鑰百匆。一把作為公開的公鑰,一把作為誰(shuí)也不能給的私鑰呜投。公鑰加密的信息加匈,只有私鑰能解,私鑰加密的信息宙彪,只有公鑰能解矩动。
  • 對(duì)稱加密相比非對(duì)稱加密而言有巧,效率和性能都更好释漆。
  • 所以HTTPS先用非對(duì)稱加密,使通信雙發(fā)約定好公鑰篮迎,然后在后續(xù)的大量數(shù)據(jù)通信中就使用這個(gè)公鑰來對(duì)稱加密男图。
    a. 首先,客戶端會(huì)先向服務(wù)器打招呼甜橱,并傳給他自己的TSL層版本逊笆,可以使用的密碼套件,還有一個(gè)隨機(jī)數(shù)岂傲。client hello
    b. 服務(wù)端收到后难裆,會(huì)返回一個(gè)消息,包括服務(wù)端選擇協(xié)議版本镊掖、加密套件壓縮算法乃戈,也發(fā)送給客戶端一個(gè)隨機(jī)數(shù)。server hello
    c. 隨后亩进,服務(wù)端會(huì)發(fā)送他的證書給客戶端症虑。server certificate
    d. 然后服務(wù)端表示自己發(fā)送信息結(jié)束了。server done
    e. 客戶端收到證書后归薛,對(duì)證書進(jìn)行校驗(yàn)谍憔。使用瀏覽器中內(nèi)置的CA公鑰匪蝙,去解密服務(wù)端發(fā)來的證書。如果能成功习贫,說明是可信的逛球。客戶端也把自己的證書發(fā)給服務(wù)端進(jìn)行校驗(yàn)苫昌。client certificate
    f. 客戶端又產(chǎn)生一個(gè)隨機(jī)數(shù)字pre-master需忿,用證書中的公鑰加密,再發(fā)給服務(wù)端蜡歹,并要求更改后續(xù)的加密方式屋厘。client key exchange
    g. 在客戶端和服務(wù)端,通過剛剛發(fā)送和接收的三個(gè)隨機(jī)數(shù)月而,以及所選擇的密碼套件加密算法汗洒,生成相同的對(duì)稱密鑰。
    h. 然后客戶端發(fā)消息表示父款,以后就用對(duì)稱密鑰傳輸了溢谤。change cipher spec
    i. 然后使用協(xié)商好的對(duì)稱密鑰,發(fā)一些參數(shù)給服務(wù)端用于數(shù)據(jù)和握手驗(yàn)證憨攒。Encypted Handshake Message
    j. 服務(wù)端也向客戶端表示世杀,以后使用對(duì)稱加密傳輸。change cipher spec
    k. 然后使用對(duì)稱密鑰發(fā)參數(shù)給客戶端肝集。Encypted Handshake Message

四瞻坝、數(shù)字證書

  • 數(shù)字證書是由權(quán)威部門CA頒發(fā)的。
  • 證書里面有公鑰杏瞻、證書所有者所刀、證書有效期、發(fā)布機(jī)構(gòu)等信息捞挥,就像身份證一樣浮创。
  • 服務(wù)器可以向CA進(jìn)行證書申請(qǐng),然后CA會(huì)用私鑰給證書進(jìn)行簽名砌函。
  • 客戶端獲得服務(wù)器的CA證書后斩披,可以使用CA的公鑰對(duì)其解密。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末讹俊,一起剝皮案震驚了整個(gè)濱河市垦沉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌劣像,老刑警劉巖乡话,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異耳奕,居然都是意外死亡绑青,警方通過查閱死者的電腦和手機(jī)诬像,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闸婴,“玉大人坏挠,你說我怎么就攤上這事⌒罢В” “怎么了降狠?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)庇楞。 經(jīng)常有香客問我榜配,道長(zhǎng),這世上最難降的妖魔是什么吕晌? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任蛋褥,我火速辦了婚禮,結(jié)果婚禮上睛驳,老公的妹妹穿的比我還像新娘烙心。我一直安慰自己,他們只是感情好乏沸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布淫茵。 她就那樣靜靜地躺著,像睡著了一般蹬跃。 火紅的嫁衣襯著肌膚如雪匙瘪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天炬转,我揣著相機(jī)與錄音辆苔,去河邊找鬼算灸。 笑死扼劈,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的菲驴。 我是一名探鬼主播荐吵,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼赊瞬!你這毒婦竟也來了先煎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤巧涧,失蹤者是張志新(化名)和其女友劉穎薯蝎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谤绳,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡占锯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年袒哥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片消略。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡堡称,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出艺演,到底是詐尸還是另有隱情却紧,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布胎撤,位于F島的核電站晓殊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏伤提。R本人自食惡果不足惜挺物,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望飘弧。 院中可真熱鬧识藤,春花似錦、人聲如沸次伶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)冠王。三九已至赶撰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間柱彻,已是汗流浹背豪娜。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留哟楷,地道東北人瘤载。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像卖擅,于是被迫代替她去往敵國(guó)和親鸣奔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

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