http2.0 展望

http2.0

http2.0 性能增强的核心:多路复用。

就是在同一个tcp连接里面我可以同时去传输数据和接收数据。同时传输多个数据,同时传输多个资源。像我们http1.1的时候,我们需要建立多个链接才能同时去传输多个资源,所以我们经常将前后端分离,并且前端单独搞一个域名,就是为了突破这个限制。但是在http2.0里面已经不需要了。因为他会复用同一个链接去同时传很多个文件。

http2.0 展望_第1张图片
WechatIMG16841.jpeg

然后我们来看一个对比,左边是1.1 ,右边是2.0

http2.0 展望_第2张图片
对比.jpeg

http2.0 时代不再需要的优化:

-多域名突破连接数限制;

-资源合并(js/css合并,css sprites,内嵌base64图片)


http2.0 的请求优先级

-- 因为资源是混合发送的,所以对不同的资源要设置优先级,保证js/css优先发送,图片后发送


http2.0首部压缩

http1.1版本是不支持头部压缩的,头部其实还是挺大的。

http2.0 展望_第3张图片
维护表.jpeg

就是在客户端和服务器端都存放了中间这样一张查找表,拿比如说1,2,51,这种数字来代表某个请求字段是什么值,然后服务器和浏览器同时维护这样一张表,所以在发送请求的时候,浏览器就会去查找这样一张表,比如method ,是2,然后发过去一个2,服务器再去找2 对应的是啥~~~就是这样一个情况,然后就减少了请求头的内容。


http2.0推送

http2.0推送其实和websocket 推送还是不太一样的。

http2.0 展望_第4张图片
WechatIMG16844.jpeg

他是指的是服务器端同时发几个js和css给客户端。服务端肯定知道我哪个页面对应需要哪个js等,当我请求index.html页面的时候,服务端就会自动将对应的js,css给到客户端。

//服务器端推送的代码
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!");
}).listen(443);

你可能感兴趣的:(http2.0 展望)