传智博客
快捷导航
蚂蚁部落 网站首页 前端教程 HTTP协议 查看内容

栏目导航

HTTP请求延迟解决方案

2017-10-11 01:04| 发布者: admin| 查看: 279| 评论: 0|来自: 蚂蚁部落

传智播客

HTTP1.1请求缺陷在当前体现越来越明显,具体参阅HTTP1.1缺点一章节。

解决队头堵塞(Head-of-line blocking)不考虑应用HTTP2协议的话,主要有如下两种方式:

(1).减少请求数量。

(2).同时多开持久连接。

基于以上两种解决思路,衍生出以下几种具体的解决方案:

1.css sprites技术:

将大量较小的图片合并成一张大图,比如一个页面有大量的琐碎的背景图片,那么就可以将这些背景图片合并在一张背景图之上,然后再利用JavaScript或者css技术将图片"切割"使用。

图示如下:

a:3:{s:3:\"pic\";s:43:\"portal/201710/11/013742oc6frtrpb6mvf02i.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上面是当前凤凰网首页的背景图的一部分(当然由于网站改版随时可能发生变化)。

在HTTP1.1里,下载一张大图比下载100张小图快得,但是某些页面只需要显示其中几张小图时,这种方案的缺点就凸显出来,它必须将整张大图都从缓存里取出,而不能将最频繁使用的那些图片保留在缓存里。

2.使用内联图片:

也就是使用Data:URL方式表示图片,这样就避免的一次HTTP请求。

具体参阅Data:URL表示图片一章节。

3.文件拼接:

一个大型的网站,可能会引入大量的JavaScript文件,这样需要发送多次请求。

当前可以通过一些前端工具,将这些JavaScript文件合并器起来,于是就可以达到减少请求次数的目的。

4.分片:

它就是将被请求的资源分散在尽可能多的主机上。

一个客户端最多只能对同一主机建立的TCP连接是有限制的,所以我们可以将资源分发很多主机之上,这样就可以建立更多的TCP连接,图示如下:

a:3:{s:3:\"pic\";s:43:\"portal/201710/11/014659ubhxtuppx4u7be1x.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}


鲜花

握手

雷人

路过

鸡蛋
上一篇:HTTP1.1缺点下一篇:HTTP2协议详解

最新评论

关于我们|手机版|小黑屋| ( 鲁ICP备10022556号-3 )

GMT+8, 2017-12-11 19:25 , Processed in 0.064159 second(s), 21 queries .

Powered by Discuz! X3.2 Licensed

Copyright © 2012-2017 Design: 蚂蚁部落

返回顶部