5.2.1 请求 Cache-Control 指令 (Request Cache-Control Directives)
本节定义客户端可以在 HTTP 请求中使用的缓存指令。
5.2.1.1. max-age
参数: delta-seconds
"max-age" 请求指令表示客户端不愿意接受年龄大于指定秒数的响应。除非同时存在 max-stale 请求指令,否则客户端不愿意接受过期响应。
该指令使用参数语法的标记形式:例如,max-age=5,而不是 max-age="5"。发送方不应该生成引用字符串形式。
5.2.1.2. max-stale
参数: delta-seconds
"max-stale" 请求指令表示客户端愿意接受已超过其新鲜度生命周期的响应。如果为 max-stale 赋予一个值,则客户端愿意接受超过新鲜度生命周期不超过指定秒数的响应。如果未为 max-stale 赋值,则客户端愿意接受任意年龄的过期响应。
该指令使用参数语法的标记形式:例如,max-stale=10,而不是 max-stale="10"。发送方不应该生成引用字符串形式。
5.2.1.3. min-fresh
参数: delta-seconds
"min-fresh" 请求指令表示客户端愿意接受新鲜度生命周期不小于其当前年龄加上指定秒数的响应。也就是说,客户端希望得到一个至少在指定秒数内仍保持新鲜的响应。
该指令使用参数语法的标记形式:例如,min-fresh=20,而不是 min-fresh="20"。发送方不应该生成引用字符串形式。
5.2.1.4. no-cache
"no-cache" 请求指令表示缓存不得在源服务器上成功验证的情况下,使用已存储的响应来满足请求。
5.2.1.5. no-store
"no-store" 请求指令表示缓存不得存储此请求或其任何响应中的任何部分。该指令同时适用于私有缓存和共享缓存。在此上下文中,"不得存储"表示缓存不得有意将信息存储在非易失性存储中,并且必须尽最大努力在转发后尽快从易失性存储中移除该信息。
该指令不是确保隐私的可靠或充分机制。特别是,恶意或已受损的缓存可能不识别或不遵守该指令,通信网络也可能容易受到窃听。
注意,如果包含该指令的请求由缓存满足,则 no-store 请求指令不适用于已经存储的响应。
5.2.1.6. no-transform
"no-transform" 请求指令表示中介(无论是否实现缓存)不得转换有效负载,如 [RFC7230] 的第 5.7.2 节所定义。
5.2.1.7. only-if-cached
"only-if-cached" 请求指令表示客户端只希望获得已存储的响应。如果缓存收到此指令,它应该使用与请求其他约束一致的已存储响应进行响应,或者以 504(Gateway Timeout)状态码响应。如果一组缓存作为具有良好内部连接的统一系统运行,成员缓存可以在该缓存组内转发此类请求。