Rails 缓存代理如何存储私有缓存



就像我们现在一样,当涉及到"http缓存系统"时,我们有两种缓存:公共和私有,它们的区别在于用户和服务器之间存在的代理。 代理无法存储私有缓存。在这个链接中,他谈到了Rack:Cache称其为一种代理缓存,他说:

这意味着它无法缓存私有内容,但可以缓存公共内容 内容。

但是在示例(甚至是他的例子)和现实中,我们看到通过使用stalefresh_when(使用rack::cache),私有缓存被存储,然后由304渲染。

所以我们面对了一个悖论。 这个机架:缓存代理是如何存储私有缓存的?

当你使用stale?fresh_when?时,rack::cache正在使用这些信息来告诉客户端它的缓存是否新鲜。 rack::cache不会缓存内容。

缓存如果标记为私有,则只能由最终用户存储。但是该缓存是否新鲜可以通过代理确定,例如 rack:cache .

最新更新