来自 Web前端 2020-05-07 05:42 的文章
当前位置: 网上澳门金莎娱乐 > Web前端 > 正文

为什么很多网站的静态资源使用独立的域名?

时间: 2019-09-04阅读: 264标签: 域名什么是静态资源

为什么静态资源要放在一个或者若干个独立的域名之下?我当时脑海中首先想到的就是为了动静分离,减轻web服务器压力,但是仔细一想不太对,如果仅是为了这个原因,大可不必启用那么多一级域名,用若干二级域名不是更好?于是带着这个疑问,拜访了搜索引擎。果然不出所料,原因不止这一个,现整理出来,作为备忘。

不根据访问的条件变化的资源就是静态资源,比如html,js,css,webfont 等文件。

查看了淘宝的官网

为什么很多网站的静态资源使用独立的域名

图片 1image.png图片 2image.png

1.避免发送无意义的cookie ,当我们的浏览器第一次请求服务器的时候,会根据服务器响应报文中的set-Cookie 来保存cookie ,以后再次向这个服务器发送请求的时候都会带上cookie ,所以我们即使向服务器请求静态资源,这个cookie 也会发送,并且服务器对于这些 cookie 不会做任何处理,它们只是在毫无意义的消耗带宽。所以你应该确保对于静态内容的请求是无coockie的请求。需要注意的是子域名也会受到感染,所以要使用独立域名。

1、启用新的一级域名,每次请求浏览器不会携带cookie。这对于cookie内容比较大,并且流量大的网站会省去不少宽带费用。同时这也解惑了为什么不用二三级域名。

2.动静分离。静态资源与动态内容分离,有利于部署于CDN。

2、动静分离。静态资源与动态内容分离,有利于部署于CDN。

3.HTTP 协议对同一个域名的同时下载线程数有限制。主要是为了优化下载速度,防止同一域名下下载线程数过多,导致下载速度变慢。各个浏览器都会遵守这个规定,但是限制的数目可能不一致。基于这个原因,可将资源部署于不同的域名,以达到最大化并发下载。

3、HTTP协议对同一个域名的同时下载线程数有限制。主要是为了优化下载速度,防止同一域名下下载线程数过多,导致下载速度变慢。各个浏览器都会遵守这个规定,但是限制的数目可能不一致。基于这个原因,可将资源部署于不同的域名,以达到最大化并发下载。

4.静态资源独立部署,为全局产品服务。方便复用,放在一个服务器上的文件可以共其他服务器上的产品使用。 比如taobao.com 和tmall.com 都会用到tbcdn.cn 上的静态资源,这样同时也有利于最大化利用客户端缓存。比如访问taobao.com ,缓存了tbcdn.cn 上的某个js文件,之后再访问tmall.com 时,也用到此js 文件,不必再从tbcdn.cn 上下载,直接用客户端缓存即可。

浏览器的并发请求数目限制是针对同一域名的。意即,同一时间针对同一域名下的请求有一定数量限制。超过限制数目的请求会被阻塞,这就是为什么会有zhimg.com, http://twimg.com 之类域名的原因。(这是其中一个原因,另一个主要原因是,向 http://zhihu.com 请求资源会把 http://zhihu.com 下本地的所有 cookie 发送过去,这是请求图片,js等资源不需要的,会造成很大的浪费,详情见http://webmasters.stackexchange.com/questions/26753/why-do-big-sites-host-their-images-css-on-external-domains)

图片 3image.png

本文由网上澳门金莎娱乐发布于Web前端,转载请注明出处:为什么很多网站的静态资源使用独立的域名?

关键词: