代理服务器是否根据 Uri 缓存资源数据?

代理服务器是否根据 Uri 缓存资源数据?

最流行的代理服务器根据 Uri 缓存响应数据? 另外,让我们排除 HTTP 标头(如 Cache-Control 等)...并假设它们已设置为公开、max-age:xxxx s-maxage:yyyyy 等...

那么...假设代理服务器说“此资源需要缓存”...“密钥”是什么?Uri 吗?

所以如果我有

  • www.somedomain.com
  • www.somedomain.com/foo
  • www.somedomain.com/foo?
  • www.somedomain.com/foo?a=1
  • www.somedomain.com/foo?a=1&b=2

它们都是单独的缓存项目吗?

答案1

我的理解是,最常见的是它是与 URL 相关内容的哈希值,例如主机的名称/地址、路径,有时还有其他选项,例如 cgi 参数。 根据此常见问题解答,Squid 使用直 URL 的哈希和 HTTP 检索方法来识别缓存中已有的项目。

我认为您列出的 URL 在大多数情况下确实会导致创建单独的缓存项。

答案2

我熟悉乌贼。它肯定会将所有示例 URI 缓存为单独的对象。但请注意,完全可以配置 Squid 不缓存与某些模式匹配的 URI,例如包含

答案3

URL 绝对是缓存的关键参数。事实上,作为一名 Web 开发人员,防止缓存 Web 资源的一种方法是在 URL 末尾附加一个随机查询字符串。

相关内容