http雜談

瀏覽器url生命周期


1.網(wǎng)絡(luò)5層模型



1.1)http 1.1的特點(diǎn)

1.持久鏈接

持久連接的特點(diǎn)是:只要任意一端沒有明確提出斷開連接简逮,則保持TCP連接狀態(tài)嘹黔。在HTTP1.0中栽惶,沒有默認(rèn)支持持久連接蛛砰,而在HTTP1.1中所有連接默認(rèn)都是持久連接

2.pipeline

HTTP管線化是將多個(gè)HTTP要求(request)整批提交的技術(shù),而在傳送過程中不需先等待服務(wù)端的回應(yīng)烟零。管線化機(jī)制須通過永久連接(persistent connection)完成瘪松,僅HTTP/1.1支持此技術(shù)(HTTP/1.0不支持)咸作,并且只有GET和HEAD要求可以進(jìn)行管線化锨阿,而POST則有所限制。此外记罚,初次創(chuàng)建連接時(shí)也不應(yīng)啟動(dòng)管線機(jī)制.

http管線化是一項(xiàng)實(shí)現(xiàn)了多個(gè)http請(qǐng)求但不需要等待響應(yīng)就能夠?qū)戇M(jìn)同一個(gè)socket的技術(shù)墅诡,僅有http1.1規(guī)范支持http管線化,1.0并不支持;


1.2) http 2.0

1.數(shù)據(jù)以二進(jìn)制傳輸 (將通信的基本單位縮小為幀)

即應(yīng)用層(HTTP)和傳輸層(TCP or UDP)之間增加一個(gè)二進(jìn)制分幀層末早,因此在多向請(qǐng)求和響應(yīng)時(shí)烟馅,客戶端和服務(wù)器可以把HTTP消息分解為互不依賴的幀,然后亂序發(fā)送然磷,最后再在另一端把它們重新組合起來郑趁,解決了http 1.*的對(duì)手阻塞問題

2.同一個(gè)連接發(fā)送多個(gè)請(qǐng)求,不按照順序來接收(支持多路復(fù)用)

?多路復(fù)用允許同時(shí)通過單一的 HTTP 2.0 連接發(fā)起多重的請(qǐng)求-響應(yīng)消息姿搜,即所有HTTP 2.0 連接都是持久化的寡润,而且客戶端與服務(wù)器之間也只需要一個(gè)連接即可,所有數(shù)據(jù)流共用同一個(gè)連接 舅柜,減少了因http鏈接多而引起的網(wǎng)絡(luò)擁塞(在 HTTP1.1 協(xié)議中梭纹,同一時(shí)間,瀏覽器會(huì)針對(duì)同一域名下的請(qǐng)求有一定數(shù)量限制)致份,解決了慢啟動(dòng)針對(duì)突發(fā)性和短時(shí)性的http鏈接低效的問題

3.頭信息壓縮(首部壓縮)

http 2.0支持DEFLATE和HPACK?算法的壓縮变抽。

4.推送等提高效率功能(服務(wù)端推送)

指客戶端請(qǐng)求之前發(fā)送數(shù)據(jù)的機(jī)制,在 HTTP 2.0 中氮块,服務(wù)器可以對(duì)客戶端的一個(gè)請(qǐng)求發(fā)送多個(gè)響應(yīng)绍载。

5.請(qǐng)求優(yōu)先級(jí)

HTTP 2.0 使用一個(gè)31比特的優(yōu)先值,0表示最高優(yōu)先級(jí), 2(31)-1表示最低優(yōu)先級(jí),服務(wù)器端就可以根據(jù)優(yōu)先級(jí)滔蝉,控制資源分配逛钻,優(yōu)先處理和返回最高優(yōu)先級(jí)的請(qǐng)求幀給客戶端。


1.3) 緩存工作原理

https://segmentfault.com/a/1190000004486640

緩存工作流程


可緩存性:誰可以緩存

public都可以緩存

private只有發(fā)起請(qǐng)求的瀏覽器可以 ,nginx緩存 不能用

no-cache可以緩存 但是要服務(wù)器驗(yàn)證 :Last-Modified和Etag

no-store 就是不可緩存

no-transform 代理服務(wù)器不可改動(dòng)緩存內(nèi)容

到期:

max-age= 瀏覽器用這個(gè)

s-maxage= 專門為代理緩存設(shè)置, 如nginx緩存

max-stale=? 這個(gè)時(shí)間內(nèi) 即使超過max-age 也不去服務(wù)器取 就用過期緩存,在請(qǐng)求設(shè)置中有效

重新驗(yàn)證:

must-revalidate

proxy-revalidate

Cache-Control:private, max-age=0, must-revalidate

驗(yàn)證:ETag/Last-Modified

ETag

ETag是用來計(jì)算文件的內(nèi)容是否發(fā)生變化锰提,比如曙痘,你在文件中刪除一個(gè)空格,這樣都算文件內(nèi)容發(fā)生變化立肘。 通常做法是用md5或者SHA1算法边坤,計(jì)算出文件的唯一值。 在前端其實(shí)都可以完成谅年, 找到一個(gè)文件文件解析的md5算法茧痒,然后將文件傳入,就可以得到ETag的值融蹂。 不過這里旺订,我們著重點(diǎn)并不是讓你生成Etag,而是看看ETag在緩存中的重要作用超燃。

ETag是HTTP/1.1A的一種辦法区拳,由Web服務(wù)器生成,并寫入響應(yīng)頭中意乓。

//response HeadersETag:"751F63A30AB5F98F855D1D90D217B356"

接著樱调,到了瀏覽器之后,便緩存在本地。 當(dāng)下次打開同樣的文章時(shí)笆凌,會(huì)在請(qǐng)求頭中發(fā)送If-None-Match, 給服務(wù)器檢查文件是否發(fā)生變化圣猎。如果沒有,則告訴瀏覽器使用本地的乞而,否則返回新文件

//request HeadersIf-None-Match:"751F63A30AB5F98F855D1D90D217B356"




Nginx配置:

打開ngnix.conf文件送悔,檢查是否有以下語句:

etag off;

more_set_headers -s 404 -t 'ETag';

more_clear_headers 'Etag';


Last-Modified

這和文檔內(nèi)容信息驗(yàn)證不同,這里采用的是日期驗(yàn)證辦法爪模。 即放祟,服務(wù)器上會(huì)對(duì)文件打上一個(gè)文件改動(dòng)的日期,然后客戶端接受該日期呻右,下次請(qǐng)求時(shí)跪妥,返回該日期,服務(wù)器驗(yàn)證声滥,如果日期未變眉撵,則告訴瀏覽器使用本地緩存即可。

即落塑,在服務(wù)器的相應(yīng)頭中纽疟,可以設(shè)置Last-Modified,來啟用這一緩存協(xié)議.

//Response HeaderLast-Modified:Tue,03Mar201501:38:18GMT

接受到這一響應(yīng)頭之后憾赁,瀏覽器會(huì)對(duì)該文件做一個(gè)緩存污朽,并保存該日期。當(dāng)下次請(qǐng)求的時(shí)候龙考,會(huì)通過If-Modified-Since將日期傳入并驗(yàn)證:

If-Modified-Since:Tue, 03?Mar?2015 01:38:18?GMT

如果日期未變蟆肆,則告訴瀏覽器使用緩存。


1.4)https加密


https證書生成


nginx中https配置




瀏覽器http跳轉(zhuǎn)https



1.5)http 2.0優(yōu)勢(shì)

1.信道復(fù)用 2.分幀傳輸 3.Server Push

nginx中http2 配置



客戶端接受服務(wù)器推送



Chrome查看統(tǒng)計(jì)請(qǐng)求詳情


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末晦款,一起剝皮案震驚了整個(gè)濱河市炎功,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌缓溅,老刑警劉巖蛇损,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異坛怪,居然都是意外死亡淤齐,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門袜匿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來更啄,“玉大人,你說我怎么就攤上這事沉帮⌒馑溃” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵穆壕,是天一觀的道長(zhǎng)待牵。 經(jīng)常有香客問我,道長(zhǎng)喇勋,這世上最難降的妖魔是什么缨该? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮川背,結(jié)果婚禮上贰拿,老公的妹妹穿的比我還像新娘。我一直安慰自己熄云,他們只是感情好膨更,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著缴允,像睡著了一般荚守。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上练般,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天矗漾,我揣著相機(jī)與錄音,去河邊找鬼薄料。 笑死敞贡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的摄职。 我是一名探鬼主播誊役,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼谷市!你這毒婦竟也來了势木?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤歌懒,失蹤者是張志新(化名)和其女友劉穎啦桌,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體及皂,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡甫男,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了验烧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片板驳。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖碍拆,靈堂內(nèi)的尸體忽然破棺而出若治,到底是詐尸還是另有隱情慨蓝,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布端幼,位于F島的核電站礼烈,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏婆跑。R本人自食惡果不足惜此熬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望滑进。 院中可真熱鬧犀忱,春花似錦、人聲如沸扶关。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽节槐。三九已至鲫寄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疯淫,已是汗流浹背地来。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留熙掺,地道東北人未斑。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像币绩,于是被迫代替她去往敵國(guó)和親蜡秽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354