网页制作与http协议
这里我主要是想澄清一些基本概念,主要是关于网页制作及前端优化的,网上看到过一些关于类似于“http连接数”优化的文章,不过感觉存在一些概念性的错误,其实打开网页时http最大连接数是浏览器限制的,如ie6在http1.0下是4个,http1.1下是2个;ie8 在http1.0下是6个,http1.1下也是6个,而不是图片越多或引用的外部文件越多打开的连接数就越多,只能说请求次数会增加,http协议是无状态协议,并不会长期保持连接状态,请求结束连接就断开,不会因为多下载了几张图片就与服务器多了几个连接,当然同时请求数量多的话浏览器会增加连接数,即产生并发连接(上限之内),但是对于同一个客户端来说再怎么并发同一时刻也不会超过浏览器规定的最大连接数上限(除非人为修改),如果一个页面引用多个外部文件和多张图片,那么这个请求过程应该是递归进行的,再不超过限制的前提下逐一完成请求。
当然页面中减少图片数量肯定是可以提高加载速度的,一方面是减少了数据量,一方面是减少了请求次数,降低了页面载入时并发连接对服务器的压力, 所以请求次数与请求数据之间应该有一个平衡点,不能一味的减少请求或一味的减少数据量,当然如果两者能同时降低再好不过了,单往往是降低了数据量会增加请求次数,就拿背景图片来说,如果把一个背景图作为一个大背景请求 次数是少了,但是数据量猛增,页面载入肯定慢,但是如果为了降低数据量,把不需要的背景剔除用css来控制,图片就会被分割,如果把握不好把背景图片拆分成几十块上百块,页面载入时就会不停的发送请求,虽然每次请求的数据量小了,总数据量也小了,但是时间都浪费在了请求过程中了,也增加了服务器负担,两种做法那样速度更快,效果更好些呢,不好确定,只能在实际操作中权衡,尽量寻求一个平衡点。
希望本文能对大家在以后的网页制作中有帮助,因个人水平有限,不当之处还请大家多多指正~~ 与大家分享知识,共同进步,更多关于http1.0/1.1协议的相关概念请参考rfc2616文档,网址http://www.w3.org/Protocols/rfc2616/rfc2616.html。