http2.0 展望

http2.0

http2.0 性能增強(qiáng)的核心:多路復(fù)用。

就是在同一個(gè)tcp連接里面我可以同時(shí)去傳輸數(shù)據(jù)和接收數(shù)據(jù)。同時(shí)傳輸多個(gè)數(shù)據(jù),同時(shí)傳輸多個(gè)資源。像我們http1.1的時(shí)候,我們需要建立多個(gè)鏈接才能同時(shí)去傳輸多個(gè)資源,所以我們經(jīng)常將前后端分離,并且前端單獨(dú)搞一個(gè)域名,就是為了突破這個(gè)限制。但是在http2.0里面已經(jīng)不需要了。因?yàn)樗麜?huì)復(fù)用同一個(gè)鏈接去同時(shí)傳很多個(gè)文件。

WechatIMG16841.jpeg

然后我們來(lái)看一個(gè)對(duì)比,左邊是1.1 ,右邊是2.0

對(duì)比.jpeg

http2.0 時(shí)代不再需要的優(yōu)化:

-多域名突破連接數(shù)限制;

-資源合并(js/css合并,css sprites,內(nèi)嵌base64圖片)


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

-- 因?yàn)橘Y源是混合發(fā)送的,所以對(duì)不同的資源要設(shè)置優(yōu)先級(jí),保證js/css優(yōu)先發(fā)送,圖片后發(fā)送


http2.0首部壓縮

http1.1版本是不支持頭部壓縮的,頭部其實(shí)還是挺大的。

維護(hù)表.jpeg

就是在客戶端和服務(wù)器端都存放了中間這樣一張查找表,拿比如說(shuō)1,2,51,這種數(shù)字來(lái)代表某個(gè)請(qǐng)求字段是什么值,然后服務(wù)器和瀏覽器同時(shí)維護(hù)這樣一張表,所以在發(fā)送請(qǐng)求的時(shí)候,瀏覽器就會(huì)去查找這樣一張表,比如method ,是2,然后發(fā)過(guò)去一個(gè)2,服務(wù)器再去找2 對(duì)應(yīng)的是啥~~~就是這樣一個(gè)情況,然后就減少了請(qǐng)求頭的內(nèi)容。


http2.0推送

http2.0推送其實(shí)和websocket 推送還是不太一樣的。

WechatIMG16844.jpeg

他是指的是服務(wù)器端同時(shí)發(fā)幾個(gè)js和css給客戶端。服務(wù)端肯定知道我哪個(gè)頁(yè)面對(duì)應(yīng)需要哪個(gè)js等,當(dāng)我請(qǐng)求index.html頁(yè)面的時(shí)候,服務(wù)端就會(huì)自動(dòng)將對(duì)應(yīng)的js,css給到客戶端。

//服務(wù)器端推送的代碼
spdy.createServer(options,function(req,res){
   //push javascript asset (/main.js) to the client
   res.push('/main.js',
   {'content-type':'application/javascript'},function(){
       stream.end('alert ("hello from push stream!")');
   });
   
   //write main response body and terminate stream
   res.end("hello world!<script src='.main.js'></script>");
}).listen(443);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容