问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么减少http请求数

发布网友 发布时间:2022-04-20 16:40

我来回答

2个回答

懂视网 时间:2022-04-20 21:01

http请求头的数据量

我们先分析下请求头,看看每次请求都带了那些额外的数据.下面是监控的google的请求头

Host www.google.com.hk
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTBDFff GTB7.0
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-cn,en-us;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Proxy-Connection keep-alive


返回的response head

Date Sat, 17 Apr 2010 08:18:18 GMT
Expires -1
Cache-Control private, max-age=0
Content-Type text/html; charset=UTF-8
Set-Cookie PREF=ID=b94a24e8e90a0f50:NW=1:TM=1271492298:LM=1271492298:S=JH7CxsIx48Zoo8Nn; expires=Mon, 16-Apr-2012 08:18:18 GMT; path=/; domain=.google.com.hk NID=33=EJVyLQBv2CSgpXQTq8DLIT2JQ4aCAE9YKkU2x-h4hVw_ATrGx7njA69UUBMbzVHVnkAOe_jlGGzOoXhQACSFDP1i53C8hWjRTJd0vYtRNWhGYGv491mwbngkT6LCYbvg; expires=Sun, 17-Oct-2010 08:18:18 GMT; path=/; domain=.google.com.hk; HttpOnly
Content-Encoding gzip
Server gws

Content-Length 4344


这里发送的请求头的大小大概420 bytes,返回的请求头大概 600 bytes。

可见每次请求都会带上一些额外的信息进行传输(这次请求中还没有带cookie),当请求的资源很小,比如1个不到1k的图标,可能request带的数据比实际图标的数据量还大。

所以当请求越多的时候,在网络上传输的数据自然就多,传输速度自然就慢了。

其实request自带的数据量还是小问题,毕竟request能带的数据量还是有限的。

http连接的开销


相比request头部多余的数据,http连接的开销则更加严重。先看看从用户输入1个URL到下载内容到客户端需要经过哪些阶段:

1. 域名解析
2. 开启TCP连接
3. 发送请求
4. 等待(主要包括网络延迟和服务器处理时间)
5. 下载资源

可能很多人认为每次请求大部分时间都花在下

20100514004027959.jpg

看了上图你可能惊讶,花费在等待阶段的时间比实际下载的时间要多的多,上图告诉我们:
1. 每次请求花费的大部分时间在其他阶段,而不是在下载资源阶段
2. 再小的资源照样会花费很多时间在其他阶段,只是下载阶段会比较短(见上图的第6个资源,才284Byte)。

正对上面提到的2种情况,我们应该要怎么进行优化了?减少请求数来减少其他阶段的花销和网络中传输的数据。

如何减少请求数

1、合并文件
合并文件就是把很多JS文件合并成1个文件,很多CSS文件合并成1个文件,这种方法应该很多人用到过,这里不做详细介绍,
只推荐1个合并的工具:yuiCompressor 这个工具yahoo提供的。 http://developer.yahoo.com/yui/compressor/

2、合并图片
这是利用css sprite,通过控制背景图片的位置来显示不同的图片。这种技术也是大家都用过的,不做详细介绍,推荐1个在线合并图片的网站:http://csssprites.com/

3、把JS、CSS合并到1个文件
上面第1种方法说的只是把几个JS文件合并成1个JS文件,几个CSS文件合并成1个CSS文件,哪如何把CSS和JS都合并到1个文件中,见我的另1篇文章:
http://www.blogjava.net/BearRui/archive/2010/04/18/combin_css_js.html

4、使用Image maps
Image maps 是把多个图片合并成1个图片,然后使用html中的<map>标签连接图片,并实现点击图片不同的区域执行不同的动作,image map在导航条中比较容易使用到。
image map的使用方法见: http://www.w3.org/TR/html401/struct/objects.html#h-13.6

5、data嵌入图片
这种方法把图片进行编码直接嵌入到html中进行使用,以减少HTTP请求,但这个会增加HTML页面的大小,而且这样嵌入的图片不能缓存。见下面这个图片:


上面的图片就是把图片进行base64编码后使用data:嵌入到html中,代码如下(后面的省略了,大家可以查看源代码看):
<IMG SRC="data:image/gif;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAWRXhpZgAASUkqAAgAA......">


其中google的视频搜索中,搜索出来的视频缩略图就都是使用嵌入的图片的,见下图: 20100514004125359.jpg

20100514004137154.jpg

以上几种方法在都有利有弊,在不同情况下可以选择不同的使用方式,比如使用data嵌入图片虽然减少了请求数,但会增加页面大小。


所以微软的bing搜索在用户第一次访问的时候使用data嵌入图片,然后后台懒加载真真的图片,以后访问就直接使用缓存的图片,而不使用data。

热心网友 时间:2022-04-20 18:09

(1)合并css,合并js
(2)合并导航小图片,并利用css控制
(3)将css,js文件合并到一块
(4)利用image map标签
(5)嵌入图片
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦到别人跳楼是不是要长高了? 我小孩四岁,他有五百度的斜弱视请问该怎样 朋友家孩子四岁七个月,检查医生说有弱视,伴有一点轻微斜视,如何治疗... 开机密码忘记了不想恢复出厂设置怎么办呢? 辽宁省十大特产 辽宁有哪些特产值得带 辽宁著名特产排行榜 我升级了快播4.0,但是怎么原来的片子都没了 安装快播提示"抽取,无法写入文件"的解决方法 临床医学学硕和专硕的就业区别 医学学硕和专硕哪一个更好考 宁海金海汇有什么项目 丝锥为什么经常崩牙? 急求助:半年前做的烤瓷牙(大牙),现在上面瓷蹦掉了一小块,现怎么处理为最好?? jumpsoles篮球训练鞋 弹跳鞋弹跳能让我灌篮不?我172 全力能摸框 弹跳训练计划,帮帮忙,谢谢 穿跑步鞋可以练弹跳吗?我的跑步鞋是安踏的,鞋底较厚。穿不同的鞋练弹跳效果会不同吗? 在郑州买电动车,哪种牌子的电动车电瓶、电机好点,想多骑几年? 17万到22万左右的车,那些比较好啊,要好看,要实用的? 浙江尤奈特电机有限公司我是48V500W直流无刷电机,现在霍尔坏了,请问换什么样的霍尔动力大 电动车电机4000w 6Ov与72v1200w尤奈特无刷电机动力和节电性能的区别? 时风电动车电机怎么样?是哪里生产的电机呢? 广西那里有批发 尤奈特 牌子的电动三轮车电机 尤奈特直流无刷中置电机1500w,空转时输出轴比较热正常?为何500w空转不热 尤奈特无刷电机怎么修理 尤奈特2200w 电机,配什么控制器? 浙江尤奈特电机48V500W无刷直流电机的电感电阻都是多少 浙江尤奈特电机有限公司怎么样? 寺庙中的弥勒佛为什么要笑? 尤奈特三轮电机霍尔与其它牌电机通用吗 尤奈特电电动车电它们分别是1200,1500W每分钟多少转? 山东省的北斗定位系统只有一家公司可以安装吗???急求 返利APP有几种用法? 为什么我的支付宝不显示贷款证明示例? 支付宝蚂蚁借呗,没有预期,钱全部还完了,现在借呗被关了,贷款证明去开具有什么什么用,不懂呢? 支付宝借呗贷款放款是兴业银行杭州分行怎么打印贷款证明? 人参煲鸡汤可以经常吃吗 人参乌鸡汤多久喝一次 微信投票怎么快速简单拉票 乾隆通宝皮钱现在卖多少钱 企业微信技术支撑工作总结怎么写 乾隆通宝怎么鉴别?乾隆通宝能值什么价? 怎样制作派出所工作总结微信宣传内容 如何落实从严治党要求做好为社区居民服务工作总结 帮忙看下这一个乾隆通宝. 大师们看看这枚乾隆通宝 和别的不一样上面全是斑点 价格如何 这两枚乾隆通宝是真品吗,真的多少钱 请问哪里有收购古币的啊?请速回答 不胜感激啊! 什是小程序商城 如何使用网络交换机 iPhone新更新的会说话的汤姆猫2怎么赚金币