通过一个问题引入:为什么雪碧spriting技术能够改善加快页面渲染。
spiriting雪碧技术介绍
spiritin技术 就是把多张页面背景小图转换为一张大图来加载,最后通过backgroundSize ,background repeat等背景显示定位 相关样式把背景显示出来,目的就是减少http请求
为什么要减少http请求
这就要是要深入了解http1.x了
首先浏览器能够针对同一个域名能够发起的tcp请求是有限制的,像Chorme同时只支持发起6个tcp请求,意味着超过6个就有一些请求必须排队,这意味着请求会出现排队阻塞,而且虽然一个tcp连接可以发起多个请求但是如果其中某个请求很慢,还会让排队中的请求一起堵塞那么长时间。总结就是请求连接数量有限然后请求会排队阻塞
同样原因的其他优化方法
- 小图片内嵌在html中,以data base64格式存放图片。
- 把多个小的js文件合并成为一个大js文件,css也可以这样处理,不过这里要平缓,考虑缓存的问题,大文件里可能有些经常更新 有些不经常更新 要区别等待。
开始正式介绍http1.x的缺点
-
1.请求阻塞 如上已清晰说明
-
2.以明文文本字符串的形式传输内容,存在安全问题。
-
3.http 请求头无状态特性 导致传输效率低下
多个http请求头大部分信息是相同的,重复传输,导致宽带浪费.请求头多达几百字节,而请求主体却只有十几个字节,有效信息比很低。 -
4.只能浏览器主动请求响应,不能服务器主动推送信息过来
http2优势
http2基于sdpy协议 ,专注于性能,目标是在用户和服务器间只用一个连接
sdpy协议是google2009研发出来的,主要就是为了解决http1效率不高的问题
-
1.二进制帧数据
http2采用二进制进行数据传输,它把原来的header+body的数据格式拆分为一帧帧的二进制数据进行发送,而且收发都是无顺序的,这意味着不会出现堵塞。一帧帧数据上有个标识id,能够区分数据 ,浏览器可以据此组合出数据 -
2.header头数据压缩,和同一域名请求,只发送请求头不同的部分,这样就解决了http1中的问题 请求头过大而且重复发送
-
3.支持服务器端推送技术
-
4.传输内容加密
http2不强制加密,但是chrome firefox都公开宣布只支持加密的http2 所以实事上http2是加密的
http2缺点
主要是底层支持的tcp协议造成的问题
- tcp 以及tcp+tls建立连接延时,两个握手延时
- tcp队头阻塞
网友评论