为什么访问量大的网站资源存在多个域名下?这是什么原理?

教程与解决方案问答分类: 计算机相关为什么访问量大的网站资源存在多个域名下?这是什么原理?
0
Fuyeor MaruguFuyeor 管理员 提问于 2月 以前

1 个回答
0
Fuyeor MaruguFuyeor 管理员 回答于 2月 以前

这不叫“多个域名”而是将图片等等资源放在了其他的域名下。

  • 方便缓存和配置 CDN

能否通俗地讲一下什么是cdn?

将静态资源(图片、头像、css、js等等文件)存储在独立的域名下,方便配置 CDN 加速。

  • 增加并发请求数

当我们在浏览网页的时候,对浏览速度有一个重要的影响因素,就是浏览器的并发数量。并发数量简单通俗的讲就是,当浏览器网页的时候同时工作的进行数量。

浏览器对同一域名的并发数量是有限的,不同浏览器并发请求数不同。把静态资源(图片、头像、css、js等等文件)存储在多台静态服务器,可以增加对静态资源的并发数,为了增加页面打开速度,把静态资源存放在多台静态服务( n个二级域名),可以增加加载的并发数量。

如果同时只有2个并发连接数数量,那网页打开的时候只能依赖于这2条线程,前面如果有打开慢的内容,就会直接影响到后面的内容打开。但是如果同时有更多的并发连接数,这样就会大大的提高网页加载速度。

  • Cookie 隔离:减少流量和带宽消耗

淘宝拥有很多二级域名网站,这些二级域名网站需要获取 taobao.com 域下的 Cookie,以实现用户在淘宝登录,可以直接访问各个子域名下的系统和网。每个二级域名都能读取这个 Cookie 的值。

而淘宝的 Cookie 已经非常大了,据说曾接近 1Kb,如果用 img0.taobao.com,那么每次请求该域名下的资源图片都会带上长长的 Cookie(如下图请求百度服务器所带的 Cookie)而淘宝静态资源图片服务器并不需要这些 Cookie。如果用 img0.taobao.com 的话后果可想而知,不仅使得网络请求延迟升高,而且还浪费了大量的带宽和 CDN。这就是网站领域常说的所说的 Cookie 污染

为了解决这一问题,网站一般注册新的域名用于存放资源图片,一般是网站同名的 Net 域名,或者是网站缩写+static。例如 Google 是 gstatic.com,百度是 bdstatic.com,yandex 是 yastatic.net 等等。

图:百度用于存放静态资源的域名:

百度用于存放静态资源的域名

  • passport. baidu .com 域名主要负责认证百度账号,
  • bdstatic. com 域名主要负责存放图片、js、css 等等资源。

均衡服务器压力一般是“负载均衡”技术。

你的回答

20 + 12 =