[8] [[HTTP]] [[頭欄]] [CODE(HTTP)[Content-Version:]]
は、その記述する[[実体]]の版を表す文字列を値に取ります。

「版」と言っても、ある作業から派生した別の作業
(例えば [[GNUEmacs]] に対する [[XEmacs]]。)
やある資源の別の表現 (例えば[[英語]]版に対する[[日本語]]版。)
のようなものもありますが、
この欄はそのような目的で使うのでは''ありません''。
(前者の場合は異なる [[URI]] を与え、
後者の場合には [CODE(HTTP)[[[Content-Language:]]]]
欄などを使います。)

同じ一つの資源の、第1版と第2版のような区別を表現するのが、
この欄の役割です。

[9] この欄は読み書き可能な HTTP の実現のための機能の一つであったわけですが、
標準化が思うように進まず、 [[HTTP/1.1]] の最初の [[RFC]]
である [[RFC2068]] では参考としてあげるに留まり、
[[SE]] である [[RFC2616]] では余り使われていないとして触れていません。

結局読み書き可能な HTTP の実現は [[WebDAV]]
として標準化されましたので、この欄は普及することなくその役目を終えたと言っても良いでしょう。

- [10] 値の型が例えば [SAMP(ABNF)[1*DIGIT *("." 1*DIGIT)]] のように構造化されずに [CODE(HTTP)[[[quoted-string]]]] で自由文である辺りが、既に標準化の失敗を物語っているような。

* 仕様書

[REFS[
- [14] [CITE@en[RFC 2068 - Hypertext Transfer Protocol -- HTTP/1.1]] ([TIME[2014-09-29 05:21:03 +09:00]] 版) <http://tools.ietf.org/html/rfc2068#section-19.6.2.2>
]REFS]

*HTML での使用

[1] [CODE(HTTP)[Content-Version:]] 欄を、 [[HTML]]
の [[meta]] 要素で [[http-equiv]] 属性を使って何かの版管理のために使っている人がいるようです。

しかし、その書式は [[HTTP]] とは異なり、 [[quoted-string]]
ではなく引用符のない自由文のようです。

確かに HTML としての引用符が既にありますから、それに重ねて 
(しかも名前実体参照で) 引用符を書くのはあれではありますが。

それに [CODE(HTTP)[Content-Version:]] 欄の標準化がうまくいかなかったのですし、仕方ないといえば仕方ないんですが。
あまりお勧めできない使い方ですね。

* 歴史

** RFC 2068

[15] [[RFC 2068]] [SRC[>>14]] で「追加機能」として追加されました。

[FIG(quote)[
[FIGCAPTION[
[11] RFC 2068 (HTTP/1.0) 19.6.2.2 Content-Version
]FIGCAPTION]

>The Content-Version entity-header field defines the version tag
associated with a rendition of an evolving entity. Together with the
Derived-From field described in section 19.6.2.3, it allows a group
of people to work simultaneously on the creation of a work as an
iterative process. The field should be used to allow evolution of a
particular work along a single path rather than derived works or
renditions in different representations.

[2] [CODE(HTTP)[Content-Version]] [[実体頭欄]]は、
含まれている[[実体]]の版と関連付けられている版[RUBY[札] [タグ]]を定義します。
19.6.2.3 節で定義している [CODE(HTTP)[Derived-From]] 
欄と併用することで、対話的処理のような制作作業を同期的に行うことが出来るようになります。
この欄は、派生物や異なる表現の版に対してではなく、単一経路の特定の物に対して使用するべきです。

-[3]      Content-Version = "Content-Version" ":" quoted-string

>Examples of the Content-Version field include:

[4] [CODE(HTTP)[Content-Version]] 欄の例を次に示します。

-[5]    Content-Version: "2.1.2"
-[6]    Content-Version: "Fred 19950116-12:26:48"
-[7]    Content-Version: "2.5a4-omega7"
]FIG]

** RFC 2616

[13] [[RFC 2616]] はあまり使われていない [SRC[>>12]] として削除しています。

[REFS[
- [12] [CITE@en[RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1]] ([TIME[2014-09-07 04:14:53 +09:00]] 版) <http://tools.ietf.org/html/rfc2616#page-175>
]REFS]

** RFC 4229

[18] [[IANA登録簿]]には [[RFC 4229]] により [[RFC 2068]] を出典に登録されています [SRC[>>16, >>17]]。

[19] 状態は「[[標準]]」となっています [SRC[>>16]]。ただし一覧表では空欄になっています [SRC[>>17]]。

;; [20] これは [[RFC 723x]] 出版後も変わっていません。 [TIME[2014-11-04T15:30:26.400Z]]

[REFS[
- [16] [CITE@en[RFC 4229 - HTTP Header Field Registrations]] ([TIME[2014-11-02 09:53:20 +09:00]] 版) <http://tools.ietf.org/html/rfc4229#section-2.1.33>
- [17] [CITE[Message Headers]] ([TIME[2014-10-31 18:26:49 +09:00]] 版) <http://www.iana.org/assignments/message-headers/message-headers.xhtml>
]REFS]


[21] [CITE[RFC Errata Report]]
( ([TIME[2014-12-03 17:38:03 +09:00]] 版))
<http://www.rfc-editor.org/errata_search.php?rfc=4229>