从另一个域加载 scripts/static 资源的可能原因
Possible reasons for loading scripts/static resources from another domain
我看到很多网站都有单独的域名(不是子域名)用于加载脚本和静态资源。
一个例子是当实际网站在 gitlab.com
上时,GitLab 从 assets.gitlab-static.net
加载它的脚本。我观察到的还有很多做同样的事情。
通过另一个域名加载网站自己的脚本而不是使用相同的域或子域可以获得哪些好处?
要明确:
- 我不是在问为什么给出的例子会这样做,而是问一般的网站会从中得到什么。
- 我不是在问为什么用户上传的内容存储在另一个域中,而是纯粹是为什么网站拥有 CSS/JS 是从另一个域加载的。
主要优点包括 -
在另一个域 (assets.gitlab-static.net) 上使用了一个 cdn(内容分发网络),它将此内容缓存到访问它的用户附近的多个边缘位置,因为这些资产可能不会被修改得太频繁。 - 而且不可能 link 几个相同域的 url 到 cdn 和其他到你自己的服务器。
另一个域将是无 cookie 域,因此每次请求都不会向服务器发送与会话相关的 cookie,从而占用更少的带宽和更快的响应。
其他原因可能是使用这个新域为 HTTP 1 / 1.1 连接应用域分片,因为浏览器打开有限数量(最多 3 或 6 个)的同步套接字连接到一个域。
我看到很多网站都有单独的域名(不是子域名)用于加载脚本和静态资源。
一个例子是当实际网站在 gitlab.com
上时,GitLab 从 assets.gitlab-static.net
加载它的脚本。我观察到的还有很多做同样的事情。
通过另一个域名加载网站自己的脚本而不是使用相同的域或子域可以获得哪些好处?
要明确:
- 我不是在问为什么给出的例子会这样做,而是问一般的网站会从中得到什么。
- 我不是在问为什么用户上传的内容存储在另一个域中,而是纯粹是为什么网站拥有 CSS/JS 是从另一个域加载的。
主要优点包括 -
在另一个域 (assets.gitlab-static.net) 上使用了一个 cdn(内容分发网络),它将此内容缓存到访问它的用户附近的多个边缘位置,因为这些资产可能不会被修改得太频繁。 - 而且不可能 link 几个相同域的 url 到 cdn 和其他到你自己的服务器。
另一个域将是无 cookie 域,因此每次请求都不会向服务器发送与会话相关的 cookie,从而占用更少的带宽和更快的响应。
其他原因可能是使用这个新域为 HTTP 1 / 1.1 连接应用域分片,因为浏览器打开有限数量(最多 3 或 6 个)的同步套接字连接到一个域。