Skip to main content

5. Header Field Definitions (头字段定义)

🇬🇧 English

This section defines the syntax and semantics of HTTP header fields related to caching.

🇨🇳 中文

本节定义了与缓存相关的HTTP头字段的语法和语义。

🇯🇵 日本語

このセクションでは、キャッシングに関連するHTTPヘッダーフィールドの構文とセマンティクスを定義する。

🇫🇷 Français

Cette section définit la syntaxe et la sémantique des champs d'en-tête HTTP liés à la mise en cache.

🇩🇪 Deutsch

Dieser Abschnitt definiert die Syntax und Semantik von HTTP-Header-Feldern, die mit dem Caching zusammenhängen.

🇮🇹 Italiano

Questa sezione definisce la sintassi e la semantica dei campi di intestazione HTTP relativi al caching.


5.1. Age (年龄)

🇬🇧 English

The "Age" header field conveys the sender's estimate of the amount of time since the response was generated or successfully validated at the origin server. Age values are calculated as specified in Section 4.2.3.

Age = delta-seconds

The Age field value is a non-negative integer, representing time in seconds (see Section 1.2.1).

The presence of an Age header field implies that the response was not generated or validated by the origin server for this request. However, lack of an Age header field does not imply the origin was contacted, since the response might have been received from an HTTP/1.0 cache that does not implement Age.

🇨🇳 中文

"Age"头字段传达发送方对自响应在源服务器生成或成功验证以来的时间量的估计。Age值按第4.2.3节中指定的方式计算。

Age = delta-seconds

Age字段值是非负整数,表示以秒为单位的时间(见第1.2.1节)。

Age头字段的存在意味着响应不是由源服务器为此请求生成或验证的。但是,缺少Age头字段并不意味着联系了源服务器,因为响应可能是从不实现Age的HTTP/1.0缓存接收的。

🇯🇵 日本語

"Age"ヘッダーフィールドは、レスポンスがオリジンサーバーで生成または正常に検証されてからの経過時間の送信者の推定値を伝える。Age値はセクション4.2.3で指定されているように計算される。

Age = delta-seconds

Ageフィールド値は非負整数であり、秒単位の時間を表す(セクション1.2.1参照)。

Ageヘッダーフィールドの存在は、このリクエストに対してレスポンスがオリジンサーバーによって生成または検証されなかったことを意味する。ただし、Ageヘッダーフィールドがないことは、オリジンに接触したことを意味しない。なぜなら、レスポンスはAgeを実装していないHTTP/1.0キャッシュから受信された可能性があるためである。

🇫🇷 Français

Le champ d'en-tête "Age" transmet l'estimation de l'émetteur du temps écoulé depuis que la réponse a été générée ou validée avec succès sur le serveur d'origine. Les valeurs Age sont calculées comme spécifié dans la Section 4.2.3.

Age = delta-seconds

La valeur du champ Age est un entier non négatif, représentant le temps en secondes (voir Section 1.2.1).

La présence d'un champ d'en-tête Age implique que la réponse n'a pas été générée ou validée par le serveur d'origine pour cette requête. Cependant, l'absence d'un champ d'en-tête Age n'implique pas que l'origine a été contactée, car la réponse pourrait avoir été reçue d'un cache HTTP/1.0 qui n'implémente pas Age.

🇩🇪 Deutsch

Das "Age"-Header-Feld übermittelt die Schätzung des Absenders über die Zeit, die seit der Erzeugung oder erfolgreichen Validierung der Antwort auf dem Ursprungsserver vergangen ist. Age-Werte werden wie in Abschnitt 4.2.3 angegeben berechnet.

Age = delta-seconds

Der Age-Feldwert ist eine nicht negative Ganzzahl, die die Zeit in Sekunden darstellt (siehe Abschnitt 1.2.1).

Das Vorhandensein eines Age-Header-Felds impliziert, dass die Antwort nicht vom Ursprungsserver für diese Anfrage generiert oder validiert wurde. Das Fehlen eines Age-Header-Felds impliziert jedoch nicht, dass der Ursprung kontaktiert wurde, da die Antwort möglicherweise von einem HTTP/1.0-Cache empfangen wurde, der Age nicht implementiert.

🇮🇹 Italiano

Il campo di intestazione "Age" trasmette la stima del mittente del tempo trascorso da quando la risposta è stata generata o validata con successo sul server di origine. I valori Age sono calcolati come specificato nella Sezione 4.2.3.

Age = delta-seconds

Il valore del campo Age è un intero non negativo, che rappresenta il tempo in secondi (vedere Sezione 1.2.1).

La presenza di un campo di intestazione Age implica che la risposta non è stata generata o validata dal server di origine per questa richiesta. Tuttavia, la mancanza di un campo di intestazione Age non implica che l'origine sia stata contattata, poiché la risposta potrebbe essere stata ricevuta da una cache HTTP/1.0 che non implementa Age.


5.2. Cache-Control (缓存控制)

🇬🇧 English

The "Cache-Control" header field is used to specify directives for caches along the request/response chain. Such cache directives are unidirectional in that the presence of a directive in a request does not imply that the same directive is to be given in the response.

A cache MUST obey the requirements of the Cache-Control directives defined in this section. See Section 5.2.3 for information about how Cache-Control directives defined elsewhere are handled.

Note: Some HTTP/1.0 caches might not implement Cache-Control.

A proxy, whether or not it implements a cache, MUST pass cache directives through in forwarded messages, regardless of their significance to that application, since the directives might apply to all recipients along the request/response chain. It is not possible to target a directive to a specific cache.

Cache directives are identified by a token, to be compared case-insensitively, and have an optional argument, that can use both token and quoted-string syntax. For the directives defined below that define arguments, recipients ought to accept both forms, even if a specific form is required for generation.

Cache-Control = 1#cache-directive

cache-directive = token [ "=" ( token / quoted-string ) ]

For the cache directives defined below, no argument is defined (nor allowed) unless stated otherwise.

🇨🇳 中文

"Cache-Control"头字段用于为请求/响应链上的缓存指定指令。此类缓存指令是单向的,因为请求中存在某个指令并不意味着响应中也要给出相同的指令。

缓存必须 (MUST) 遵守本节中定义的Cache-Control指令的要求。有关如何处理在其他地方定义的Cache-Control指令的信息,请参见第5.2.3节。

注意: 某些HTTP/1.0缓存可能不实现Cache-Control。

无论代理是否实现缓存,都必须 (MUST) 在转发的消息中传递缓存指令,而不管它们对该应用程序的重要性如何,因为这些指令可能适用于请求/响应链上的所有接收者。不可能将指令定向到特定缓存。

缓存指令由令牌标识,以不区分大小写的方式进行比较,并具有可选参数,可以使用令牌和引号字符串语法。对于下面定义的定义参数的指令,接收方应该接受两种形式,即使生成需要特定形式。

Cache-Control = 1#cache-directive

cache-directive = token [ "=" ( token / quoted-string ) ]

对于下面定义的缓存指令,除非另有说明,否则不定义(也不允许)参数。

🇯🇵 日本語

"Cache-Control"ヘッダーフィールドは、リクエスト/レスポンスチェーンに沿ったキャッシュのディレクティブを指定するために使用される。このようなキャッシュディレクティブは単方向であり、リクエストにディレクティブが存在するからといって、レスポンスに同じディレクティブが与えられることを意味しない。

キャッシュは、このセクションで定義されたCache-Controlディレクティブの要件に従わなければならない (MUST)。他の場所で定義されたCache-Controlディレクティブの処理方法については、セクション5.2.3を参照。

注: 一部のHTTP/1.0キャッシュはCache-Controlを実装していない可能性がある。

プロキシは、キャッシュを実装しているかどうかに関係なく、転送されるメッセージ内のキャッシュディレクティブを、そのアプリケーションにとっての重要性に関係なく渡さなければならない (MUST)。なぜなら、ディレクティブはリクエスト/レスポンスチェーンに沿ったすべての受信者に適用される可能性があるためである。ディレクティブを特定のキャッシュに向けることはできない。

キャッシュディレクティブはトークンによって識別され、大文字と小文字を区別せずに比較され、オプションの引数を持つ。引数はトークンと引用符で囲まれた文字列の両方の構文を使用できる。以下で定義された引数を定義するディレクティブについて、受信者は、生成に特定の形式が必要な場合でも、両方の形式を受け入れるべきである (ought to)。

Cache-Control = 1#cache-directive

cache-directive = token [ "=" ( token / quoted-string ) ]

以下で定義されるキャッシュディレクティブについて、別途記載がない限り、引数は定義されない(また許可されない)。

🇫🇷 Français

Le champ d'en-tête "Cache-Control" est utilisé pour spécifier des directives pour les caches le long de la chaîne de requête/réponse. De telles directives de cache sont unidirectionnelles en ce sens que la présence d'une directive dans une requête n'implique pas que la même directive doive être donnée dans la réponse.

Un cache DOIT (MUST) obéir aux exigences des directives Cache-Control définies dans cette section. Voir Section 5.2.3 pour des informations sur la façon dont les directives Cache-Control définies ailleurs sont traitées.

Remarque : Certains caches HTTP/1.0 peuvent ne pas implémenter Cache-Control.

Un proxy, qu'il implémente ou non un cache, DOIT (MUST) transmettre les directives de cache dans les messages transmis, quelle que soit leur signification pour cette application, car les directives peuvent s'appliquer à tous les destinataires le long de la chaîne de requête/réponse. Il n'est pas possible de cibler une directive vers un cache spécifique.

Les directives de cache sont identifiées par un jeton, à comparer sans tenir compte de la casse, et ont un argument optionnel, qui peut utiliser à la fois la syntaxe de jeton et de chaîne entre guillemets. Pour les directives définies ci-dessous qui définissent des arguments, les destinataires devraient (ought to) accepter les deux formes, même si une forme spécifique est requise pour la génération.

Cache-Control = 1#cache-directive

cache-directive = token [ "=" ( token / quoted-string ) ]

Pour les directives de cache définies ci-dessous, aucun argument n'est défini (ni autorisé) sauf indication contraire.

🇩🇪 Deutsch

Das "Cache-Control"-Header-Feld wird verwendet, um Direktiven für Caches entlang der Anfrage-/Antwortkette anzugeben. Solche Cache-Direktiven sind unidirektional, da das Vorhandensein einer Direktive in einer Anfrage nicht impliziert, dass dieselbe Direktive in der Antwort gegeben werden muss.

Ein Cache MUSS (MUST) die Anforderungen der in diesem Abschnitt definierten Cache-Control-Direktiven befolgen. Siehe Abschnitt 5.2.3 für Informationen darüber, wie anderswo definierte Cache-Control-Direktiven behandelt werden.

Hinweis: Einige HTTP/1.0-Caches implementieren möglicherweise kein Cache-Control.

Ein Proxy MUSS (MUST), ob er einen Cache implementiert oder nicht, Cache-Direktiven in weitergeleiteten Nachrichten weitergeben, unabhängig von ihrer Bedeutung für diese Anwendung, da die Direktiven möglicherweise für alle Empfänger entlang der Anfrage-/Antwortkette gelten. Es ist nicht möglich, eine Direktive auf einen bestimmten Cache auszurichten.

Cache-Direktiven werden durch ein Token identifiziert, das ohne Berücksichtigung der Groß-/Kleinschreibung verglichen wird, und haben ein optionales Argument, das sowohl Token- als auch Quoted-String-Syntax verwenden kann. Für die unten definierten Direktiven, die Argumente definieren, sollten Empfänger beide Formen akzeptieren (ought to), auch wenn eine bestimmte Form für die Erzeugung erforderlich ist.

Cache-Control = 1#cache-directive

cache-directive = token [ "=" ( token / quoted-string ) ]

Für die unten definierten Cache-Direktiven wird kein Argument definiert (oder erlaubt), sofern nicht anders angegeben.

🇮🇹 Italiano

Il campo di intestazione "Cache-Control" viene utilizzato per specificare direttive per le cache lungo la catena di richiesta/risposta. Tali direttive di cache sono unidirezionali nel senso che la presenza di una direttiva in una richiesta non implica che la stessa direttiva debba essere data nella risposta.

Una cache DEVE (MUST) obbedire ai requisiti delle direttive Cache-Control definite in questa sezione. Vedere Sezione 5.2.3 per informazioni su come vengono gestite le direttive Cache-Control definite altrove.

Nota: Alcune cache HTTP/1.0 potrebbero non implementare Cache-Control.

Un proxy, che implementi o meno una cache, DEVE (MUST) trasmettere le direttive di cache nei messaggi inoltrati, indipendentemente dal loro significato per quell'applicazione, poiché le direttive potrebbero applicarsi a tutti i destinatari lungo la catena di richiesta/risposta. Non è possibile indirizzare una direttiva a una cache specifica.

Le direttive di cache sono identificate da un token, da confrontare senza distinzione tra maiuscole e minuscole, e hanno un argomento opzionale, che può utilizzare sia la sintassi token che quella di stringa tra virgolette. Per le direttive definite di seguito che definiscono argomenti, i destinatari dovrebbero (ought to) accettare entrambe le forme, anche se una forma specifica è richiesta per la generazione.

Cache-Control = 1#cache-directive

cache-directive = token [ "=" ( token / quoted-string ) ]

Per le direttive di cache definite di seguito, nessun argomento è definito (né consentito) se non diversamente specificato.


📝 翻译说明 (Translation Notes)

  • Section 5引言: 简洁明了地介绍头字段定义的范围
  • 5.1 Age字段: HTTP/1.0兼容性说明在所有语言版本中得到了准确传达
  • 5.2 Cache-Control引言:
    • 单向性(unidirectional)是关键特性,所有语言版本都精确表达
    • 代理必须传递指令的要求在所有语言中保持法律级严谨性
    • ABNF语法保持原样,确保技术实现的一致性
  • 大小写不敏感: case-insensitively在所有语言版本中准确翻译