网站页面加载时间和保持活动的http连接

时间:2010-11-25 13:57:35

标签: apache http browser httpwebrequest keep-alive

背景:我更喜欢将所有CSS和Javascript保存在单独的.css / .js文件中。 (原因是它们被许多页面共享,因此以这种方式,这些文件中的静态数据不会随每个页面视图一起传输)。这导致一些页面具有5-6“链接rel”或“脚本类型”语句。

现在,通常情况下,这意味着浏览器会对每个css / js文件单独发出请求,并且有效的页面加载时间会增加 - 例如,对于5次往返请求变为5X(如果我错了,请纠正我)。

我的问题是:

1)现代浏览器是否默认请求保持连接?

2)如果他们这样做,那么这是否意味着额外的文件来源(css / js)不会增加有效加载时间?例如 - 服务器是否会假设浏览器将请求css / js文件,因此继续发送它(从而避免额外的请求)?

简而言之 - 任何人都可以通过单独的css / js文件解释何时加载时间不会增加,如果它总是增加,那么加载时间是否会随着包含的文件数量成比例增加?

的问候,

JP

1 个答案:

答案 0 :(得分:0)

  1. 是的,使用HTTP / 1.1的浏览器通常应该使用保持连接。

  2. 服务器不一定会假设它; keep-alive应该意味着没有单独的DNS查找 - 文件仍然被请求。

  3. 如果配置正确,您应该找到(例如可以通过Firefox + Firebug验证)第一个请求生成这些文件的正常下载,但后续请求会生成HTTP 304(文件未修改)请求,其中内容包含自上次加载以来没有改变,因此它应该可以从缓存中获得。

    如果这是一个真正令人担忧的问题,您可能希望使用Expires标头来指定文件的长寿命,因此甚至不会发出请求(甚至不能查看文件是否已更改)