静态资源的一些问题

前言

在写 cdn
和 对象存储文章的时候,看到了一些跟静态资源有关的问题,这里就来做一些整理。

什么是静态资源

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

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

  1. 避免发送无意义的 cookie
    ,当我们的浏览器第一次请求服务器的时候,会根据服务器响应报文中的 set-Cookie
    来保存 cookie
    ,以后再次向这个服务器发送请求的时候都会带上 cookie
    ,所以我们即使向服务器请求静态资源,这个 cookie
    也会发送,并且服务器对于这些 cookie 不会做任何处理,它们只是在毫无意义的消耗带宽。所以你应该确保对于静态内容的请求是无coockie的请求。需要注意的是子域名也会受到感染,所以要使用独立域名。
  2. 动静分离。静态资源与动态内容分离,有利于部署于CDN。
  3. HTTP
    协议对同一个域名的同时下载线程数有限制。主要是为了优化下载速度,防止同一域名下下载线程数过多,导致下载速度变慢。各个浏览器都会遵守这个规定,但是限制的数目可能不一致。基于这个原因,可将资源部署于不同的域名,以达到最大化并发下载。
  4. 静态资源独立部署,为全局产品服务。方便复用,放在一个服务器上的文件可以共其他服务器上的产品使用。 比如 taobao.com
    tmall.com
    都会用到 tbcdn.cn
    上的静态资源,这样同时也有利于最大化利用客户端缓存。比如访问 taobao.com
    ,缓存了 tbcdn.cn
    上的某个 js
    文件,之后再访问 tmall.com
    时,也用到此 js
    文件,不必再从 tbcdn.cn
    上下载,直接用客户端缓存即可。

静态资源加速方法

Web静态资源缓存及优化

参考文章

  1. 静态资源放置于独立域名下的好处