独立域名指的是一级域名而不是二级或三级域名
大型网站的静态资源都是放在独立的域名之下的。
- 浏览器的很多机制对网站的访问速度有很大的影响(例如浏览器对静态资源的缓存机制),此外浏览器为提升页面显示效率,支持并发获取资源。浏览器对并发请求的数目限制是针对域名的,即针对同一域名(包括二级域名)在同一时间支持的并发请求数量的限制。如果请求数目超出限制,则会阻塞。因此,网站中对一些静态资源,使用不同的一级域名,可以提升浏览器并行请求的数目,加速界面资源的获取速度
- 网络请求时cookie传输
当静态资源与主服务在同一域名下(根据业务需要,主服务请求时需要传递cookie信息),每次静态资源的请求,都会发送同域名下的cookie。而对于静态资源,服务器无需对cookie进行任何处理,它们只是在毫无意义的消耗带宽。
假设网站cookie信息有1 KB、网站首页共150个资源时,用户在请求过程中需要发送150 KB的cookie信息,在512 Kbps的常见上行带宽下,需要长达3秒左右才能全部发送完毕。很多情况下cookie的path是在整个一级域名下可用的,如果你把静态资源设置成二级域名,那么它也避免不了cookie。例如如果给 http://126.com 设置了cookie,那么会感染所有子域名, 请求 http://www.126.com/logo.gif或者http://image.126.com/logo.gif 时便会带上讨厌的cookie。
所以对于静态资源使用单独的域名,并设置为无cookie,以减少请求大小,提高网页性能。启用新的一级域名,每次请求浏览器不会携带cookie。这对于cookie内容比较大,并且流量大的网站会省去不少宽带费用
- 网络请求时cookie传输
- 方便分流或缓存
动静分离。静态资源与动态内容分离,有利于部署于CDN。静态资源独立部署,为全局产品服务。方便复用,放在一个服务器上的文件可以共其他服务器上的产品使用。 比如taobao.com和tmll.com都会用到tbcdn.cn上的静态资源,这些资源不必从属于某个产品。
这样同时也有利于最大化利用客户端缓存。比如访问taobao.com,缓存了tbcdn.cn上的某个js文件,之后再访问tmll.com时,也用到此js文件,不必再从tbcdn.cn上下载,直接用客户端缓存即可。
- 方便分流或缓存