如果不同来源请求相同资源,浏览器将从缓存中拉出吗?

问题描述 投票:0回答:1

假设您有资源,可以是图像,也可以是CDN中的jQuery。此资源托管在某些第三方URL上,例如https://example-cdn.com/resource.ext。我们还假设它是可缓存的(无论什么意思,请让我知道这是否是一个重要的细节)。

[https://website-a.com请求资源时(假设直接将其包含在html中),需要花费一些时间来加载,但是随后浏览器会对其进行缓存以便下次更快地加载。

现在,https://website-b.com还使用完全相同的url(https://example-cdn.com/resource.ext)在其html中包含该资源。

我的问题是:是浏览器将访问缓存的资源(因为在加载https://website-a.com时已经获取了该资源),还是由于某些原因而无法在缓存中找到它,并且必须再次通过网络加载它?

Edit:这个stackexchange答案似乎包含一些相关信息。任何人都可以在所有有关缓存的断言中验证该答案是否正确吗? https://webmasters.stackexchange.com/a/84685

html http caching browser https
1个回答
0
投票

是,将缓存资源。

这是基于HTTP和URL的语义。 URL是通用资源位置:它以可以在任何地方使用的格式提供资源的位置,并且始终指示相同的资源:在不同网站的<a>元素中,在名片上,在广告海报上。 HTTP客户端(Web浏览器)知道一个网站使用的URL引用相同的资源(如果在其他网站上使用的话),因此可以安全地重用缓存的副本。

这是一个例外,当URL是相对URL时(您的示例使用绝对URL)。要使用相对URL,客户端必须使用某些context resolve URL来生成绝对URL。不同的网站具有不同的上下文,因此解析为不同的绝对URL。这是客户端必须用来获取资源的绝对URL,并且它是其缓存中的键。

© www.soinside.com 2019 - 2024. All rights reserved.