比方说,我必须提供我的网站,可以随时更新动态内容。我想要缓存数据以获得最佳性能。如何设置Cache-Control标题以缓存动态内容?
我认为最准确的做法是只要数据没有改变就将数据保存在缓存中。所以它涉及到使用no-cache
选项。
问题是我不知道这是否是一个不错的选择。每次有人请求这些数据时,缓存服务器都会请求原始服务器,并询问自那时起数据是否已更改。所以我不知道no-store
选项的差别在哪里,数据根本没有被缓存(就性能而言)。我的意思是,我认为bandwitdh卷将用相当的方式相当(我是对吧?)
因此,如果每个单一时间的请求,我的缓存服务器必须检查源服务器,所以什么是与直接请求源服务器的区别?
是否有任何选项可以设置缓存,以便只在发生更新时才能获取新数据?
感谢这就是我一直在寻找。你认为这些解决方案能否给我带来与制作“基本缓存”相同的优势,还是会使用一些额外的bandwitdh? – Jack
头允许浏览器管理自己的缓存,你不应该需要任何东西。发送的HEAD请求的开销很小,以检查内容是否仍然有效,但这些都是最小的,并且可能是新内容下载时总带宽的一小部分。你可以通过调整'Cache-Control'头部来修改客户端检查更新的频率 - 例如在'最大年龄= 60'选项说的内容被视为新的5分钟 - 见https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control了更多的选择。 –
请注意,大多数HTTP客户端在发送完整的GET请求之前不会发送HEAD请求,因为它具有已知的资源实体标记。它只会发送带有'If-None-Match'头部的GET。 – idbehold