在缓存控制中,max-age = 0和max-age = -1之间有什么区别



两个标题Cache-control: max-age=0Cache-control: max-age=-1

之间的浏览器行为有什么区别

如果浏览器接收到最大值= 0,它将立即重新验证缓存。如果浏览器接收到最大值= 10,则将在10秒后重新验证缓存。Max-Age = -1的浏览器行为是什么?与max-age = 0一样吗?如果是,为什么我们两个都需要?

max-age采用与 delta-seconds匹配的参数:

The delta-seconds rule specifies a non-negative integer, representing
time in seconds.
  delta-seconds  = 1*DIGIT

max-age=-1因此不是有效的指令,规范不能定义解释。规格建议:

Caches are
encouraged to consider responses that have invalid freshness
information to be stale.

来自https://www.w3.org/protocols/rfc2616/rfc2616-sec14.html#sec14.9.3

max-age 当强制使用Max-age = 0指令,以重新验证其自己的高速缓存条目,并且客户端在请求中提供了自己的验证器,所提供的验证器可能与当前存储的CACHE验证器不同入口。在这种情况下,缓存可以在不影响语义透明度的情况下提出自己的请求时使用任何一个验证器。 但是,验证器的选择可能会影响性能。最好的方法是让中间缓存在提出请求时使用自己的验证器。如果服务器使用304(未修改)回复,则缓存可以通过200(OK)响应将其已验证的副本返回给客户端。但是,如果服务器使用新的实体和缓存验证器回复,则使用强的比较功能,中间缓存可以将返回验证器与客户端请求中提供的验证器进行比较。如果客户端的验证器等于原始服务器,则中间缓存只需返回304(未修改)。否则,它将以200(确定)响应返回新实体。

来自https://developer.mozilla.org/en-us/docs/web/http/headers/access-control-max-age

delta秒 最大秒数可以缓存。 Firefox在24小时(86400秒)和10分钟(600秒)时盖上这盖。铬还指定默认值5秒。 值为-1的值将禁用缓存,需要对所有呼叫进行飞行前选项检查。

相关内容

  • 没有找到相关文章

最新更新