前端优化中第一条就是对于请求连接数的优化,其他条件相同时,连接数越小,当然网页反应越快,就好比同样宽的马路,车子越少,道路越流畅。
另一方面可能会想到,为什么不把马路扩宽呢?这里就是我们要讲到的浏览器连接数的问题了。
关于浏览器连接数的设置,ie是可以在注册表中修改,具体位置是在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings这个地方。
这里有两个参数:一个是MaxConnectionsPer1_0Server,它代表http1.0最大连接数,ie8默认值为4,关于它的详细说明可以参见微软官方网站http://msdn.microsoft.com/en-us/library/cc197012(v=vs.85).aspx;另一个属性是maxConnectionsPerServer,它代表每个服务器最大连接数ie8中无默认值,它是由http协议版本来确定返回不同值的,微软官方文档(http://msdn.microsoft.com/en-us/library/cc197013(v=vs.85).aspx)中注明http1.1返回值为2,http1.0版本返回值为4。
主流浏览器使用的http协议都是较新的http1.1版本,包括ie6,查看相应的协议版本可以在工具-Internet选项-高级,第一个选项就是协议版本;火狐可以在about:config中查找network.http.version;当然都是可以修改的。
而chrome使用的是WebKit内核,从6.0以后使用的协议是WebSocket(详见http://www.chromi.org/archives/5044),最大的区别它是全双工通讯协议,可以认为http协议是单双工的(也就是发送请求,等待响应,再返回请求)的方式。