/
86.txt
109 lines (79 loc) · 4.25 KB
/
86.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
104
105
106
107
108
109
[14] [DFN[[CODE(HTTP)@en[[[Want-Digest:]]]]]] [[ヘッダー]]は、
[[クライアント]]が希望する[[ダイジェストアルゴリズム]]を指定するものです。
* 仕様書
[REFS[
- [2] [CITE@en[RFC 3230 - Instance Digests in HTTP]] ([TIME[2014-08-31 18:57:37 +09:00]] 版) <http://tools.ietf.org/html/rfc3230#section-4.3.1>
]REFS]
* 意味
[3] [CODE(HTTP)@en[[[Want-Digest:]]]] [[ヘッダー]]は、
[[送信者]]が[[要求URL]]に関連付けられた[[メッセージ]]の[[実現値ダイジェスト]]を受信することを望んでいると示すものです [SRC[>>2]]。
[11] [[送信者]]が受信することを望んでいるのは、 [CODE(HTTP)@en[[[Want-Digest:]]]]
[[ヘッダー]]で明示され、 [[q値]]が 0 でない[[ダイジェストアルゴリズム]]のみです [SRC[>>2]]。
;; [12] この[[ヘッダー]]が指定されなければ、どの[[ダイジェストアルゴリズム]]も望んでいないことになります。
* 構文
[4] この[[ヘッダー]]の値は、0個以上の値の[[リスト]] ([CODE(HTTP)[#]]) です [SRC[>>2]]。
[FIG(railroad)[
= ?
== 値
== *
=== [[OWS]]
=== [CODE(HTTP)[[[,]]]]
=== [[OWS]]
=== 値
]FIG]
[5] それぞれの値は、[[ダイジェストアルゴリズム]]の名前と、
省略可能な [CODE(HTTP)[[[q]]]] [[引数]]です [SRC[>>2]]。
[6] 仕様書の時代的に構文上明記されていませんが、 [CODE(HTTP)[[[;]]]]
の前後には[[空白]]が挿入できると思われます。
[FIG(railroad)[
= [[ダイジェストアルゴリズム]]
= ?
== [[OWS]]
== [CODE(HTTP)[[[;]]]]
== [[OWS]]
== [CODE(HTTP)[[[q]]]]
== [CODE(HTTP)[[[=]]]]
== [[q値]]
]FIG]
* [CODE(HTTP)[q]] 引数
[10] [[ダイジェストアルゴリズム]]には [CoDE(HTTP)[[[q]]]] [[引数]]を指定できます。
指定しない場合、[[q値]] 1.0 とみなします [SRC[>>2]]。
[7] [CODE(HTTP)[[[q]]]] [[引数]]の名前は[[大文字・小文字不区別]]です [SRC[>>2]]。
[13] 複数の[[ダイジェストアルゴリズム]]が指定された場合は、
[[q値]]が最高のもの(たち)が[[送信者]]が[RUBYB[より好んでいる]@en[preferred]][[ダイジェストアルゴリズム]]となります。 [SRC[>>2]]
* 歴史
[FIG(quote)[
[FIGCAPTION[
[1] RFC 3230 (実現値要約) 4.3.1 Want-Digest
]FIGCAPTION]
> The Want-Digest message header field indicates the sender's desire to
receive an instance digest on messages associated with the Request-URI.
[CODE(HTTP)[Want-Digest]] [[メッセージ頭欄]]は、
[CODE(ABNF)[[[Request-URI]]]] に関連付けられた[[メッセージ]]に関する[[実現値]]を受信するとの[[送信者]]の希望を示します。
>
- Want-Digest = "Want-Digest" ":"
#([[digest-algorithm]] [ ";" "[[q]]" "=" qvalue])
> If a digest-algorithm is not accompanied by a qvalue, it is treated
as if its associated qvalue were 1.0.
[CODE(ABNF)[digest-algorithm]] に [CODE(ABNF)[[[qvalue]]]]
が添えられていなければ、関連付けられた [CODE(ABNF)[qvalue]]
は [CODE(HTTP)[1.0]] であるものとして扱います。
> The sender is willing to accept a digest-algorithm if and only if it
is listed in a Want-Digest header field of a message, and its qvalue
is non-zero.
メッセージの [CODE(HTTP)[Want-Digest]] 頭欄に [CODE(ABNF)[digest-algorithm]] が列せられていて、その [CODE(ABNF)[qvalue]]
が非零であるとき、この場合に限って[[送信者]]はその [CODE(ABNF)[digest-algorithm]] を受け入れる意志があります。
> If multiple acceptable digest-algorithm values are given, the
sender's preferred digest-algorithm is the one (or ones) with the
highest qvalue.
複数の受け入れ可能な [CODE(ABNF)[digest-algorithm]] 値が与えられた時は、
送信者の好む [CODE(ABNF)[digest-algorithm]] は最高の [CODE(ABNF)[qvalue]]
をもつ物(達)です。
> Examples:
- Want-Digest: md5
- Want-Digest: MD5;q=0.3, sha;q=1
]FIG]
[9] [[RFC 4229]] は[[IANA登録簿]]に状態「[[標準]]」で登録しています [SRC[>>8]]。
[REFS[
- [8] [CITE@en[RFC 4229 - HTTP Header Field Registrations]] ([TIME[2014-11-02 18:53:20 +09:00]] 版) <http://tools.ietf.org/html/rfc4229#section-2.1.115>
]REFS]