[4] [DFN[[[RFC 2774]]]] は、 [[HTTPヘッダー]]に[[名前空間]]を導入して追加機能を規定できるようにした仕組みを定義しています。提案された当時は [[HTTP]] 関係者の間で期待されていたようですが、実際にはそれほど多くは使われませんでした。しかしながら限られた領域では現在でも使われているようです。

* 仕様書

[REFS[
- [2] '''[CITE@en[RFC 2774 - An HTTP Extension Framework]]
( ([TIME[2013-11-17 02:11:24 +09:00]] 版))
<http://tools.ietf.org/html/rfc2774>'''
-- [5] [CITE@en[RFC 2774 - An HTTP Extension Framework]] ([TIME[2014-09-08 03:36:50 +09:00]] 版) <http://tools.ietf.org/html/rfc2774#section-1>
-- [9] [CITE@en[RFC 2774 - An HTTP Extension Framework]] ([TIME[2014-09-08 03:36:50 +09:00]] 版) <http://tools.ietf.org/html/rfc2774#section-5>
- [16] [CITE@en[RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content]] ([TIME[2014-09-11 18:52:09 +09:00]] 版) <https://tools.ietf.org/html/rfc7231#section-8.1.2>
]REFS]

* プロトコル

[6] [[RFC 2774]] の仕組みは既存の [[HTTP/1.0]] [[応用]]と共存できる形で拡張していますが、
[[RFC 2774]] を実装する[[応用]]は [[HTTP/1.1]] かそれ以降に基づかなければ[['''なりません''']]
[SRC[>>5]]。

[8] 次の[[ヘッダー]]があります。
[FIG(short list)[
- [CODE(HTTP)@en[[[Man:]]]]
- [CODE(HTTP)@en[[[Opt:]]]]
- [CODE(HTTP)@en[[[Ext:]]]]
- [CODE(HTTP)@en[[[C-Man:]]]]
- [CODE(HTTP)@en[[[C-Opt:]]]]
- [CODE(HTTP)@en[[[C-Ext:]]]]
]FIG]

[7] その他次の構文要素があります。
[FIG(short list)[
- [[拡張宣言]]
- [[ヘッダー接頭辞]]
- [CODE(HTTP)@en[[[M-*]]]]
- [CODE(HTTP)[[[510]]]]
]FIG]

* 文脈

[20] [[HTTP]] だけでなく、 [[HTTP]] 派生プロトコルである [[SSDP]] ([[UPnP]])
でも使われています。
[SEE[ [[SSDP]] ]]

* 要求メソッド群 [CODE(HTTP)@en[M-*]]

[10] [[要求メソッド]]の[[接頭辞]] [DFN[[CODE(HTTP)[[[M-]]]]]] は、
[RUBYB[必須要求]@en[mandatory request]] (必須の[[拡張宣言]]を含む[[要求]])
であることを表します。 [SRC[>>9]]

[11] 必須要求は[[要求メソッド]]の先頭に [CODE(HTTP)[[[M-*]]]] 
をつけなければ[['''なりません''']] [SRC[>>9]]。

[12] [[鯖]]は、 (拡張の処理を除くと) [CODE(HTTP)[[[M-]]]] が付かない[[要求メソッド]]として処理しなければ[['''なりません''']] [SRC[>>9]]。

[14] [[鯖]]は、処理するべき必須の拡張が無い [CODE(HTTP)[[[M-]]]] [[要求]]を受信したら、
[CODE(HTTP)[[[510]]]] [[応答]]を返さなければ[['''なりません''']] [SRC[>>9]]。

[13] 必須の拡張を処理するのではない[[串]]は、[[転送]]時に [CODE(HTTP)@en[[[M-]]]]
を削除しては[['''なりません''']] [SRC[>>9]]。

[15] [CODE(HTTP)@en[[[M-]]]] ではじまる[[要求メソッド]]は、
[[RFC 2774]] が予約しており、他で使っては[['''なりません''']] [SRC[>>9]]。

;; [17] [[RFC 7231]] も避けることを求めています [SRC[>>16]]。

[22] なお [[PEP]] は同様に [DFN[[CODE(HTTP)@en[[[PEP-]]]]]] を接頭辞として予約していました
[SRC[>>21]]。

[REFS[
- [21] [CITE[PEP - an Extension Mechanism for HTTP]] ([TIME[1998-04-08 06:31:46 +09:00]] 版) <http://www.w3.org/TR/WD-http-pep#_Toc404743957>
]REFS]

* 応用

[18] 次の仕様は [[RFC 2774]] に基づく [[HTTP]] の拡張となっています。

[REFS[
- [520] [CITE[CC/PP exchange protocol using HTTP Extension Framework]]
( ([TIME[2000-03-13 23:38:41 +09:00]] 版))
<http://www.w3.org/TR/NOTE-CCPPexchange>
-- [3] [CITE[CC/PP exchange protocol using HTTP Extension Framework]]
( ([TIME[2000-03-13 14:38:41 +09:00]] 版))
<http://www.w3.org/1999/06/NOTE-CCPPexchange-19990624>
- [516] [CITE[No title]]
( ([TIME[2001-09-06 01:11:22 +09:00]] 版))
<http://www.w3.org/2001/08/soap12-httpext>
- [519] [CITE@en[Implementation Behaviour — The Standard-Sitemap Protocol]]
( ([TIME[2014-11-18 19:34:20 +09:00]] 版))
<http://www.standard-sitemap.org/impl-behaviour.en.php>
- [522] [CITE[WD-P3P-20000510 P3P Specification]]
( ([TIME[2000-05-11 07:12:57 +09:00]] 版))
<http://www.w3.org/TR/2000/WD-P3P-20000510/#syntax_ext>
- [518] [CITE[Meta-Package HTTP Extension]]
( ([TIME[2001-08-16 00:33:35 +09:00]] 版))
<http://www.w3.org/2001/07/07-MetaPackage/>
]REFS]

[19] [[P3P]] は >>522 の次の版で通常の [[HTTPヘッダー]]に変更されています。

* 歴史

[1]
[CITE[HTTP Extentions patches for Mozilla]] <http://www.w3.org/2001/10/22-HttpExt-mozilla/>

[511] [CITE@en[102893 – Support HTTP Extensions (RFC 2774)]]
( ([TIME[2014-11-18 19:20:49 +09:00]] 版))
<https://bugzilla.mozilla.org/show_bug.cgi?id=102893>

[512] [CITE[HTTP Extension Framework]]
( ([TIME[2005-01-13 19:45:30 +09:00]] 版))
<http://www.w3.org/Protocols/HTTP/ietf-http-ext/>

[513] [CITE[HTTP Extension Framework Scenarios]]
( ([TIME[1998-10-27 05:23:04 +09:00]] 版))
<http://www.w3.org/Protocols/HTTP/ietf-http-ext/Scenarios.html>

[514] [CITE[Mandatory Spec Issues List]]
( ([TIME[2014-02-25 08:09:32 +09:00]] 版))
<http://www.w3.org/Protocols/HTTP/ietf-http-ext/Issues/>

[515] [CITE[SOAP vs HTTP Extentions]]
( ([TIME[2001-09-11 06:32:05 +09:00]] 版))
<http://www.w3.org/2001/09/04-SOAP-vs-HTTPExt>

[517] [CITE[HTTP Extentions patches for Apache 2]]
( ([TIME[2002-08-06 11:09:00 +09:00]] 版))
<http://www.w3.org/2001/10/22-HttpExt-apache/>

[521] [CITE@en[draft-goland-http-reliability-00 - SOA-Reliability (SOA-Rity) for HTTP]]
( ([TIME[2014-11-18 19:45:05 +09:00]] 版))
<https://tools.ietf.org/html/draft-goland-http-reliability-00#appendix-A.6>

[523] [CITE[Simple Object Access Protocol (SOAP) 1.1]]
( ([TIME[2000-05-09 08:01:17 +09:00]] 版))
<http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383530>

[524] [CITE[Simple Object Access Protocol (SOAP) 1.1]]
( ([TIME[2000-05-09 08:01:17 +09:00]] 版))
<http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383530>

[23] [CITE[HTTP Extentions patches for Mozilla]]
([TIME[2002-08-06 10:47:42 +09:00]])
<https://www.w3.org/2001/10/22-HttpExt-mozilla/>