就像我们现在一样,当涉及到"http缓存系统"时,我们有两种缓存:公共和私有,它们的区别在于用户和服务器之间存在的代理。 代理无法存储私有缓存。在这个链接中,他谈到了Rack:Cache称其为一种代理缓存,他说:
这意味着它无法缓存私有内容,但可以缓存公共内容 内容。
但是在示例(甚至是他的例子)和现实中,我们看到通过使用stale
或fresh_when
(使用rack::cache),私有缓存被存储,然后由304渲染。
所以我们面对了一个悖论。 这个机架:缓存代理是如何存储私有缓存的?
当你使用stale?
或fresh_when?
时,rack::cache
正在使用这些信息来告诉客户端它的缓存是否新鲜。 rack::cache
不会缓存内容。
缓存如果标记为私有,则只能由最终用户存储。但是该缓存是否新鲜可以通过代理确定,例如 rack:cache
.