浏览器请求与域名的关系

在最近的面试中被问到了这样一个问题:css

百度搜索的图片资源来自跟百度不一样的域名 imgstat.baidu.com, 缘由是什么,这样作有什么好处。面试

平时这方面不太注意,一时半会答不上来,回来以后照着这个问题在网上学习了一下, 好处有如下:浏览器

 

1.  没必要每次请求都携带cookie 信息 -- cookie free。服务器

说明: 按照传统的方式,假设网站的 cookie 信息有 1kb, 若是网站上有150个资源的时候,则请求的过程当中须要携带 1kb * 150 = 150kb 的数据。多多少少会对速度形成影响。并且这个信息在请求js/css/img/flash 这些静态资源上,几乎是没有必要的。解决方案是启用和主站不一样的域名来放置静态资源。cookie

 

2. 多个域名能够加大并发数 ( 由于浏览器对一个同一个域名的请求并发数量是有限制的 )并发

好比,某个浏览器对一个域名的并发数是6, 若是咱们设置n个服务器域名,那么并发数能够达到 6n,可是n 也不宜过多。dom

说明:性能

将css放置在页面最上方应该是很天然的习惯,但第一个css内引入的图片下载是有可能堵塞后续的其余js的下载的。而在目前广泛过百的整页请求数的前提下,浏览器提供的仅仅数个并发,对于进行了良好优化甚至是前面有CDN的系统而言,是极大的性能瓶颈。 这也就衍生了domain hash技术来使用多个域名加大并发量(由于浏览器是基于domain的并发控制,而不是page),不过过多的散布会致使DNS解析上付出额外的代价,因此通常也是控制在2-4之间。 这里常见的一个性能小坑是没有机制去确保URL的哈希一致性(即同一个静态资源应该被哈希到同一个域名下),而致使资源被屡次下载。
 

答案内容来自知乎:学习

做者:黄良懿优化

连接:https://www.zhihu.com/question/20474326/answer/15696641

相关文章
相关标签/搜索