5.2.1 Request Cache-Control Directives
Questa sezione definisce le direttive di cache che possono essere utilizzate da un client in una richiesta HTTP.
5.2.1.1. max-age
Argomento: delta-seconds
La direttiva di richiesta "max-age" indica che il client non è disposto ad accettare una risposta la cui età è maggiore del numero di secondi specificato. A meno che non sia presente anche la direttiva di richiesta max-stale, il client non è disposto ad accettare una risposta obsoleta.
Questa direttiva utilizza la forma token della sintassi dell'argomento: ad esempio, 'max-age=5' non 'max-age="5"'. Un mittente NON DOVREBBE (SHOULD NOT) generare la forma di stringa tra virgolette.
5.2.1.2. max-stale
Argomento: delta-seconds
La direttiva di richiesta "max-stale" indica che il client è disposto ad accettare una risposta che ha superato la sua durata di freschezza. Se viene assegnato un valore a max-stale, allora il client è disposto ad accettare una risposta che ha superato la sua durata di freschezza di non più del numero di secondi specificato. Se non viene assegnato alcun valore a max-stale, allora il client è disposto ad accettare una risposta obsoleta di qualsiasi età.
Questa direttiva utilizza la forma token della sintassi dell'argomento: ad esempio, 'max-stale=10' non 'max-stale="10"'. Un mittente NON DOVREBBE (SHOULD NOT) generare la forma di stringa tra virgolette.
5.2.1.3. min-fresh
Argomento: delta-seconds
La direttiva di richiesta "min-fresh" indica che il client è disposto ad accettare una risposta la cui durata di freschezza non è inferiore alla sua età corrente più il tempo specificato in secondi. Cioè, il client desidera una risposta che sarà ancora fresca per almeno il numero di secondi specificato.
Questa direttiva utilizza la forma token della sintassi dell'argomento: ad esempio, 'min-fresh=20' non 'min-fresh="20"'. Un mittente NON DOVREBBE (SHOULD NOT) generare la forma di stringa tra virgolette.
5.2.1.4. no-cache
La direttiva di richiesta "no-cache" indica che una cache NON DEVE (MUST NOT) utilizzare una risposta memorizzata per soddisfare la richiesta senza una validazione riuscita sul server di origine.
5.2.1.5. no-store
La direttiva di richiesta "no-store" indica che una cache NON DEVE (MUST NOT) memorizzare alcuna parte di questa richiesta o di qualsiasi risposta ad essa. Questa direttiva si applica sia alle cache private che a quelle condivise. "NON DEVE memorizzare" in questo contesto significa che la cache NON DEVE (MUST NOT) intenzionalmente memorizzare le informazioni in una memoria non volatile, e DEVE (MUST) fare un tentativo del miglior sforzo per rimuovere le informazioni dalla memoria volatile il più prontamente possibile dopo averle inoltrate.
Questa direttiva NON è un meccanismo affidabile o sufficiente per garantire la privacy. In particolare, le cache malevole o compromesse potrebbero non riconoscere o obbedire a questa direttiva, e le reti di comunicazione potrebbero essere vulnerabili alle intercettazioni.
Si noti che se una richiesta contenente questa direttiva viene soddisfatta da una cache, la direttiva di richiesta no-store non si applica alla risposta già memorizzata.
5.2.1.6. no-transform
La direttiva di richiesta "no-transform" indica che un intermediario (che implementi o meno una cache) NON DEVE (MUST NOT) trasformare il payload, come definito nella Sezione 5.7.2 di [RFC7230].
5.2.1.7. only-if-cached
La direttiva di richiesta "only-if-cached" indica che il client desidera ottenere solo una risposta memorizzata. Se riceve questa direttiva, una cache DOVREBBE (SHOULD) rispondere utilizzando una risposta memorizzata che sia coerente con gli altri vincoli della richiesta, oppure rispondere con un codice di stato 504 (Gateway Timeout). Se un gruppo di cache viene gestito come un sistema unificato con buona connettività interna, una cache membro PUÒ (MAY) inoltrare tale richiesta all'interno di quel gruppo di cache.
📝 翻译说明 (Translation Notes)
- 5.2.1核心请求指令: 所有七个指令都是HTTP缓存客户端控制的基础
- max-age/max-stale/min-fresh: 这三个时间控制指令形成完整的新鲜度控制体系,所有语言版本都保持了数学精确性
- no-cache vs no-store: 两者区别在所有语言中得到了清晰区分
- no-cache: 必须验证后才能使用
- no-store: 完全禁止存储,且明确说明了不是可靠的隐私机制
- only-if-cached: 504响应的特殊用法在所有语言版本中得到了准确描述
- Token语法规范: 所有指令都明确说明应使用token形式而非quoted-string形式
- RFC 2119关键词: MUST NOT、SHOULD、MAY等在所有语言中保持法律级严谨性