-
Notifications
You must be signed in to change notification settings - Fork 4
/
903.txt
103 lines (76 loc) · 4.56 KB
/
903.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
* 仕様書
[REFS[
- [5] [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-14.35>
]REFS]
* 歴史
** HTTP92
[11] [[HTTP92]] で示されている構文と例示では、 [CODE(HTTP)[[[,]]]]
ではなく[[空白]]区切りのリストでした [SRC[>>10]]。
[12] また無指定時は [CODE(HTTP)@en[[[GET]]]] のみであることを表していました [SRC[>>10]]。
[REFS[
- [10] [CITE[Object Header lines in HTTP]] ([TIME[2002-04-11 00:31:17 +09:00]] 版) <http://www.w3.org/Protocols/HTTP/Object_Headers.html#public>
]REFS]
** RFC 2068
[FIG(quote)[
[FIGCAPTION[
[6] RFC 2068 (HTTP/1.1) 14.35 Public
]FIGCAPTION]
> The Public response-header field lists the set of methods supported
by the server. The purpose of this field is strictly to inform the
recipient of the capabilities of the server regarding unusual
methods. The methods listed may or may not be applicable to the
Request-URI; the Allow header field (section 14.7) MAY be used to
indicate methods allowed for a particular URI.
[DFN[[CODE(HTTP)[Public]] [[応答頭欄]]]]は、
[[サーバー]]が対応している[[方式]]の集合を列挙します。
この欄の目的は、普通でない方式に係るサーバーの能力を受信者が厳密に知ることです。
列挙された方式はその [CODE(ABNF)[[[Request-URI]]]]
に適用可能かもしれませんし、そうでないかもしれません。
特定の [[URI]] について認められる方式を示すために
[CODE(HTTP)[[[Allow]]]] 頭欄を使って'''構いません'''。
>
- Public = "Public" ":" 1#method
> Example of use:
- Public: OPTIONS, MGET, MHEAD, GET, HEAD
> This header field applies only to the server directly connected to
the client (i.e., the nearest neighbor in a chain of connections). If
the response passes through a proxy, the proxy MUST either remove the
Public header field or replace it with one applicable to its own capabilities.
この頭欄は、クライアントに直接[[接続]]しているサーバー
(すなわち、接続鎖で一番近いサーバー) にのみ適用します。
応答が[[串]]を通して渡されるなら、串は
[CODE(HTTP)[Public]] 頭欄を除去するか、または自身の能力に適用可能なものに置換するかしなければ'''なりません'''。
]FIG]
** RFC 2616
[FIG(quote)[
[FIGCAPTION[
[7] RFC 2616 19.6.3 抜粋
]FIGCAPTION]
> The Alternates, Content-Version, Derived-From, Link, URI, Public and
Content-Base header fields were defined in previous versions of this
specification, but not commonly implemented. See RFC 2068 [33].
[CODE(HTTP)[Public]] 頭欄などはこの仕様書の以前の版で定義されていましたが、
広くは実装されませんでした。 [[RFC2068]] を参照。
]FIG]
[REFS[
- [3] [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
[9] [[RFC 4229]] は [[RFC 2068]] を出典に[[IANA登録簿]]に登録しています [SRC[>>4, >>8]]。
状態は「[[標準]]」となっています [SRC[>>4]]。(一覧表では空欄になっています [SRC[>>8]]。)
[REFS[
- [4] [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.89>
- [8] [CITE[Message Headers]] ([TIME[2014-10-31 18:26:49 +09:00]] 版) <http://www.iana.org/assignments/message-headers/message-headers.xhtml>
]REFS]
* メモ
[1] 結局この欄が使われなかったのは、多くの [[HTTP]] サーバーは [[CGI]]
や同様の仕組みで拡張可能だからではないでしょうかね。使える method
は[[資源]]に強く依存しすぎていて、サーバーの能力なんてものは明示できなかった。
小さな実装はそもそも最小限の method しか実装していないでしょうから、
そもそもこの欄の目的からすると意味がない。
サーバーの能力を知るには一度応答を受取って、その情報を記憶しておかないといけないという面倒さも障害かも。
[2] 似たような [CODE(HTTP)@en[[[Allow:]]]] もありますし、そちらすら
([[鯖]]が[[生成]]することはありますが[[クライアント]]には) それほど使われていませんからね。
[34] [CITE[RFC Errata Report]]
( ([TIME[2014-12-03 17:38:29 +09:00]] 版))
<http://www.rfc-editor.org/errata_search.php?rfc=4229>