GC_*_*GC_ 6 caching http http-headers web
如果我已经有"缓存请求指令",那么"缓存响应指令"的重点是什么.他们添加了什么吗?如果没有它们,我的应用程序是否会运行
我在寻找证明"缓存响应指令"是否冗余的证据.如果它们是多余的,我不会打扰它们.
GC_
是否需要“缓存请求指令”和“缓存响应指令”?
是的。Cache-Control请求标头和Cache-Control响应标头都是需要的。即使您已经Cache-Control在请求标头中,Cache-Control在响应中也不是多余的。它们是两个不同的东西。根据RFC7234:
缓存指令是单向的,因为请求中指令的存在并不意味着响应中将给出相同的指令。
一般来说,Cache-Control响应头从资源提供者的角度控制缓存行为。-- 资源是否应该存储在缓存中?有效期是多久?当要求时,是否需要重新验证?由于可以为所有 HTTP 请求配置响应标头,因此“缓存响应指令”提供了一种为所有资源定义缓存策略的方法。
Cache-Control然而,在请求标头中,从资源消费者的角度控制缓存行为。它更像是定义应该调整特定资源的缓存策略的例外情况。如果您检查RFC7234,大多数“请求缓存控制指令”indicates that the client is willing to...或indicates that the client is unwilling to...
另外,由于请求头只能在某些情况下配置(例如 Ajax),因此对于许多 HTTP 请求来说,“缓存请求指令”并不存在。例如,解析 HTML 文件后,将创建许多 HTTP 请求来获取静态资源(图像文件、css 文件等),无法Cache-Control在程序中手动为这些请求配置标头。
如果我已经有“缓存请求指令”,那么“缓存响应指令”有什么意义?
如果您只有“缓存请求指令”并且从未获取Cache-Control响应标头,则会发生一些问题:
Cache-Control响应头,所有资源的缓存行为都由浏览器决定(例如通过LM-Factor算法计算有效时间)。在最坏的情况下,根本就没有缓存。Cache-Control在请求中进行配置,因此失去了缓存控制能力。我假设您是作为应用程序开发人员询问的,如果是这样,您不应该打扰您的应用程序在请求中收到的任何 Cache-Control 标头。
为什么?因为该 Cache-Control 标头用于在请求到达您的应用程序之前进行缓存。它不适用于您的应用程序。
这在RFC7234 第 5.2 节(强调我的)中进行了解释:
“Cache-Control”标头字段用于为请求/响应链中的缓存指定指令。
标头的目的是告诉缓存如何处理请求。您的应用程序会收到标头,因为它附加到请求中。但仅仅因为你收到它,并不意味着它适合你。
底线:忽略请求中的任何 Cache-Control 标头。
响应中的 Cache-Control 来自您的应用程序,它也用于缓存。您可以使用它来告诉缓存如何处理响应。基本上,您使用标头来指定响应是否可缓存,如果是,则可缓存多长时间。它不仅仅是请求中收到的 Cache-Control 标头的副本。
他们会添加任何东西吗?
是的,他们这样做。响应中的 Cache-Control 告诉缓存该响应是否可缓存,如果是,它允许缓存立即使用缓存的响应为等效的请求提供服务。从客户端的角度来看,这会减少应用程序的负载并缩短响应时间。
当一个响应在缓存中是“新鲜的”时,它可以用来满足后续的请求,而无需联系源服务器,从而提高效率。
你的下一个问题:
如果没有它们,我的应用程序会运行吗?
这取决于。如果您的应用程序没有为不得缓存的响应添加适当的 Cache-Control 标头,则未来的请求可能会收到过时的响应。因此,我建议至少添加Cache-Control: no-cache到不得缓存的响应中。
在评论部分对您的问题进行补充说明
标头通常应该来自您的后端,而不是您的前端。这允许缓存准确地加速对后端的请求,并使前端请求代码保持简单。有一个例外:如果后端不是您的并且其响应新鲜度策略与您的要求不符。
一个示例场景可能是有序的:
假设除了向您自己的后端发送请求之外,您的前端还向其他人的后端发送请求。此特定后端通过发送
Cache-Control: max-age=300或适当的 Expires 标头指定其响应最多可缓存 5 分钟。假设您希望响应不超过 10 秒陈旧,因为 5 分钟对您来说太陈旧了。
由于后端不是你的,你不能改变5-minutes指令,但你可以发送你的请求,
Cache-Control: max-age=10从而在缓存响应超过 10 秒时强制缓存获取新的响应,尽管5 分钟来自后端的指令。
这是从您的前端发送 Cache-Control 标头的适当情况:后端不是您的,其响应新鲜度策略与您的要求不符。
| 归档时间: | 
 | 
| 查看次数: | 557 次 | 
| 最近记录: |