【发布时间】:2017-07-01 21:20:44
【问题描述】:
有没有办法告诉浏览器不要在网站之间共享缓存的资源? 我想给网站一个指向我服务器上一些 JavaScript 的链接,并且我想使用 Referer 标头作为检查使每个域的响应不同。 将被缓存的响应应该对请求它的域可用,并且当最终用户访问另一个使用脚本链接的站点时,应该发出另一个请求。
【问题讨论】:
标签: http caching http-headers
有没有办法告诉浏览器不要在网站之间共享缓存的资源? 我想给网站一个指向我服务器上一些 JavaScript 的链接,并且我想使用 Referer 标头作为检查使每个域的响应不同。 将被缓存的响应应该对请求它的域可用,并且当最终用户访问另一个使用脚本链接的站点时,应该发出另一个请求。
【问题讨论】:
标签: http caching http-headers
我不知道我是否理解你的问题。
您的场景是否像:stackoverflow.com 和 yourwebsite.com 使用名为“https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js”的相同脚本,但您不想与 stackoverflow.com 共享缓存脚本
这是在 googleapis.com 的网络服务器的控制之下。
因此,如果缓存资源的源服务器(googleapis.com)想要实现您所说的功能,它可能会使用 Vary 响应标头。 Vary Header 定义缓存的二级键。
可能是“Vary: Origin”,但仅适用于 CORS
可能是“Vary:referer”,但referer包含url路径
它仍然不能解决您的问题,但我希望它有所帮助。
请参阅MDN HTTP Cache Doc 和 [RFC 7234 第 4.1 节]
【讨论】: