缓存可以通过使用下列的第一条匹配来计算一个响应的新鲜度生命期(记为freshness_lifetime):

    • 如果缓存是共享的,并且s-max-age响应指令(5.2.2.9节)存在,使用这个值,或者
    • 如果max-age响应指令(5.2.2.8节)存在,使用这个值,或
    • 如果Expires响应头字段(5.3节)出现,使用它的值减去Date响应头字段的值,或
    • 否则,没有明确的过期时间出现在响应中。可以使用一个启发式的新鲜度生命期;查看4.2.2节。

    注意这个计算不受时钟偏移的影响,因为所有的信息都从源站而来。

    当给定的指令有超过一个的值出现时(例如,两个Expires头字段,多个Cache-Control: max-age指令)指令的值被视为无效的。鼓励缓存将具有无效新鲜度信息的响应视为过期的。