我的理解是,如果浏览器不确定它具有的组件是否是最新的,则会发送条件获取。问题是什么定义“不确定”。我认为它在浏览器和其他条件上都有变化。我也认为这不是你可以控制的东西,即我可以做任何事情来使浏览器改变不确定的标准。我无法设置一些东西,我可以在Http服务器上设置一个expires标头。这是对的吗?
注意:如果你能用恰好好的链接回答这个问题,那就行了。我找不到一个。
答案 0 :(得分:5)
HTTP有一个expiration model。它定义了how servers can specify their responses to expire,以及如何通过缓存确定age和freshness of a response。除此之外,还有Cache-Control directives可以修改响应如何处理依赖或独立于其新鲜度的行为。
总而言之,HTTP缓存非常复杂,实际行为取决于多个因素:
缓存控制指令可以分解为以下常规类别:
- Restrictions on what are cacheable;这些只能由原始服务器强加。
- Restrictions on what may be stored by a cache;这些可能由原始服务器或用户代理强加。
- Modifications of the basic expiration mechanism;这些可能由原始服务器或用户代理强加。
- Controls over cache revalidation and reload;这些只能由用户代理强加。
- Control over transformation of entities.
但最终,这一切都取决于用户代理对这些规则的服从。