• 浏览器请求与域名的关系


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

    百度搜索的图片资源来自跟百度不同的域名 imgstat.baidu.com, 原因是什么,这样做有什么好处。

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

    1.  不必每次请求都携带cookie 信息 -- cookie free。

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

    2. 多个域名可以加大并发数 ( 因为浏览器对一个同一个域名的请求并发数量是有限制的 )

    比如,某个浏览器对一个域名的并发数是6, 如果我们设置n个服务器域名,那么并发数可以达到 6n,但是n 也不宜过多。

    说明:

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

    答案内容来自知乎:

    作者:黄良懿

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

  • 相关阅读:
    LoginStatus 如何指向不同的登陆地址以及“invalid FORMATETC”
    不排序和可以重复Key的SortedList。
    一个新样式
    如何给另一个桌面的程序发送消息?
    Html使用自定义光标的一点需要注意的小问题。
    用stream.Read不能完整读取内容的问题。
    全国天气预报代码(转帖)
    Access处理DISTINCT的Bug?
    asp.net和asp运行结果不同?
    学习枚举类型/FlagsAttribute属性
  • 原文地址:https://www.cnblogs.com/KingCong/p/9246377.html
Copyright © 2020-2023  润新知