浏览器是否缓存不同站点共享的 CDN 脚本?

Do browsers cache CDN scripts shared by different sites?

浏览器是否缓存不同站点共享的 CDN 脚本?如果我从 example.com 的 CDN 服务器下载 jQuery,它会被重新加载到另一个站点吗?

我想,换句话说,问题是:Web 服务器是否应该 return 相同的 URL 相同的内容,即使它包含在不同的页面中?我在这里假设 Access-Control-Allow-Origin 值为 *.

此致,

是的,任何内容 URL 都与浏览器的观点无关。这是使用流行库的 CDN 版本的好处之一(正如您所指出的)。作为内容创建者,如果访问者已经通过访问另一个站点加载了库,您的站点将加载得更快。

Cross-Origin 请求共享 (CORS) headers 仍然会受到尊重,因此(再次如您所指出的)任何 public CDN 版本的库也将具有自由headers 就其本质而言,它们是与您自己的站点相关的 "third party" 脚本。

因此,如果有人试图将 "your" 内容当作 CDN 使用,您需要应用更严格的 CORS headers 来防止这种情况发生。浏览器将应用那些并拒绝使用以前缓存的内容。