高性能WEB开发(5) 减少请求,响应的数据量

网络编程 2025-04-04 19:37www.168986.cn编程入门

削减网页的“肉与骨”:如何减少网络传输的数据量

在数字化世界中,每一个字节都显得弥足珍贵。我们不仅要关注请求的数量,更要关注传输的数据量。减少传输的数据量不仅能提升页面加载速度,更能有效节省服务器带宽,为你的钱包留下更多的财富。你知道吗?许多机房托管服务都是按流量收费的。

GZIP压缩:一种被所有现代浏览器广泛支持的神奇技术。别小看它的威力,它能在不损害内容质量的前提下,大大减小响应的数据量。IE6只要安装了SP1及以上的版本就能支持这项技术(别说你还在用IE5哦,那真的是古董级别了)。

让我们来做个实验。以jQuery 1.4.2的min和src版本为例,使用nginx服务器,gzip压缩级别设定为4。看看结果如何?

看到那张图上的红色部分,你是否惊讶于jquery src文件在启用gzip后大小减少了70%?就算是已经压缩过的min.js,启用gzip后大小也减少了65%。这足以证明gzip的压缩能力之强大。

不是所有的文件都适合使用gzip压缩。例如图片,它们本身就是一种压缩格式。gzip再对其进行压缩,不仅无法进一步减小大小,还可能因为添加了一些额外的头部信息而增大体积。在测试过程中发现,jpg图片经过gzip压缩后虽然会变小,但比率较小,因此建议对图片不启用gzip压缩。

那么哪些文件适合使用gzip压缩呢?包括javascript、CSS、HTML、XML以及纯文本文件。这些文件经过gzip压缩后,可以大大减小体积,从而加快页面加载速度,节省服务器带宽。

再来说说cookie。现在几乎很少有网站不使用cookie了。如何使用cookie才比较合适呢?cookie有几个重要的属性:path(路径)、domain(域)、expires(过期时间)。浏览器就是根据这些属性来判断在发送请求时是否需要带上cookie。

最好的cookie使用方式是在请求的资源需要cookie时才带上该cookie,其他任何请求都不带。很多人在使用cookie时习惯性地设置path=/ domain=.domain.,这样的结果就是无论什么请求都会带上cookie,哪怕是请求的图片、静态资源服务器等根本不需要cookie的资源。

以博客园为例,它的cookie设置是path=/ domain=.blogs.,这意味着无论什么请求都会带上这5个cookie值。而在实际的页面请求中,如图片、JS、CSS等请求也都会带有这些cookie,这无疑增加了不必要的传输负担。

减少网络传输的数据量不仅可以提高页面加载速度,还能节省服务器带宽,让你省钱又省心。从GZIP压缩到合理使用cookie,每一个细节都值得我们去关注和优化。网络资源请求与HTTP状态码:博客园的静态资源与204状态应用

在数字化世界中,我们每天都在与无数的网络资源进行交互,这其中涉及到的技术细节却常常被我们忽视。近日,在浏览博客园时,我对其静态资源服务器和HTTP状态码的使用产生了浓厚的兴趣,并想与大家分享一些有趣的发现。

博客园的静态资源主要来源于三个服务器:mon.blogs.、pic.blogs. 和 static.blogs.。当我们请求其中的资源,例如一个名为/upload/201005/20100514349115.gif的图片时,可以看到请求头中包含了丰富的信息。

在请求头中,我们可以看到一些与图片相关的请求参数,以及一些关于浏览器和用户代理的信息。除此之外,我们还看到了很多与博客园相关的Cookie信息。尤其是在请求banner_job.gif这个图片时,浏览器携带了所有的blogs.的cookie,这引发了我的思考。

对于博客园来说,处理图片时是否真正需要这些cookie呢?虽然这几个cookie的大小只有约300字节,但在博客园每天面临大量PV(页面浏览量)的情况下,这些cookie可能会带来不小的负担。据简单计算,如果每天有50W个PV且每次PV有15次请求静态资源,这些cookie可能会消耗约2G的带宽。虽然实际的情况可能会因为各种因素(如静态资源缓存)而有所偏差,但优化这部分的资源配置仍然具有实际意义。

还有一个值得注意的地方是HTTP状态码的使用。除了常见的200、404和500状态外,HTTP状态码204也被广泛应用。状态码204表示服务器已成功处理了客户端的请求,但无内容返回。这是一个非常有效的状态码,尤其在一些只需要客户端向服务器提交信息而无需返回数据的场景中。例如,在使用ajax进行数据提交时,就可以考虑使用这种状态码。

谷歌首页的一个请求就返回了204状态。对于这个请求的具体用途,我们不得而知,但可以肯定的是,合理使用这种状态码可以有效提高网站的效率和性能。对于博客园来说,考虑将一些不必要的cookie设置为更具体的domain(如.blogs.),将有助于提高资源的利用率和网站的响应速度。

网络资源请求和HTTP状态码的使用看似简单,实则蕴含着丰富的技术和策略考量。对于博客园这样的网站来说,优化这些细节不仅能提高用户体验,还能为网站带来实实在在的效益。希望这篇文章能为大家带来一些启示和思考。

注:本文为转载文章,出处为BearRui的博客java。以上内容仅用于学习和交流目的,禁止商用。如有需要,请尊重版权并注明出处。如有错误或遗漏之处,请谅解并指正。

作者:BearRui(声明:转载请注明出处)

推广网站推广:请尊重版权和知识产权,合理引用和转载优质内容有助于促进互联网文化的繁荣和发展。

上一篇:浅谈PHP5.6 与 PHP7.0 区别 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by