-
Notifications
You must be signed in to change notification settings - Fork 4
/
588.txt
101 lines (72 loc) · 4.82 KB
/
588.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
[9] [DFN[[CODE(HTTP)@en[[[Delta-Base:]]]]]] [[ヘッダー]]は、
[[差分符号化]]のもととなる[[基底実現値]]の[[実体タグ]]を示すものです。
* 仕様書
[REFS[
- [2] [CITE@en[RFC 3229 - Delta encoding in HTTP]] ([TIME[2014-10-26 21:15:25 +09:00]] 版) <http://tools.ietf.org/html/rfc3229#section-10.3>
- [3] '''[CITE@en[RFC 3229 - Delta encoding in HTTP]] ([TIME[2014-10-26 21:15:25 +09:00]] 版) <http://tools.ietf.org/html/rfc3229#section-10.5.1>'''
]REFS]
* 意味
[4] [CODE(HTTP)@en[[[Delta-Base:]]]] [[ヘッダー]]は、
[[差分符号化]]された[[応答]]において[[基底実現値]]の[[実体タグ]]を示すものです [SRC[>>3]]。
* 構文
[6] [CODE(HTTP)@en[[[Delta-Base:]]]] [[ヘッダー]]の値は、[[実体タグ]]です [SRC[>>3]]。
[FIG(railroad)[
= [[実体タグ]]
]FIG]
* 文脈
[5] [[差分符号化]]した (= [CODE(HTTP)@en[[[IM:]]]] に[[差分符号化]]が含まれる)
[CODE(HTTP)[[[226]]]] [[応答]]の [CODE(HTTP)@en[[[Digest-Base:]]]]
[[ヘッダー]]によって[[基底実現値]]の[[実体タグ]]を示すことができます [SRC[>>2]]。
[[要求]]の [CODE(HTTP)@en[[[If-None-Match:]]]] [[ヘッダー]]に複数の[[実体タグ]]が含まれている場合には、
[CODE(HTTP)@en[[[Delta-Base:]]]] [[ヘッダー]]を含めなければ[['''なりません''']] [SRC[>>3]]。
それ以外の場合にも含めたほうが賢いかもしれません [SRC[>>3]]。
* 処理モデル
[7] [[キャッシュ]]や[[串]]は、 [CODE(HTTP)@en[[[Delta-Base:]]]]
が明示されなかった場合で[[要求]]の [CODE(HTTP)@en[[[If-None-Match:]]]]
に1つだけ[[実体タグ]]が示されていた場合には、これを [CODE(HTTP)@en[[[Delta-Base:]]]]
として追加して構いません [SRC[>>3]]。
[10] [[キャッシュ]]における処理については、[CODE(HTTP)[[[226]]]] を参照。
* 基底実現値
[1] ([[差分符号化]]された[[応答]]を期待した) [[要求]]の
[CODE(HTTP)@en[[[If-None-Match:]]]] [[ヘッダー]]には、
当該[[対象資源]]の[[実現値]]について[[妥当]]な[[実体タグ]]を[RUBYB[[[基底実現値]]]@en[base instance]]の[[実体タグ]]として指定できます。
* 歴史
[FIG(quote)[
[FIGCAPTION[
[8] RFC 3229 (差分符号化) 10.5.1 Delta-Base
]FIGCAPTION]
> The Delta-Base entity-header field is used in a delta-encoded
response to specify the entity tag of the base instance.
[CODE(HTTP)[Delta-Base]] [[実体頭欄]]は[[差分符号化]]応答で[[基底実現値]]の[[実体札]]を指定するために使用します。
>
- Delta-Base = "Delta-Base" ":" entity-tag
> A Delta-Base header field MUST be included in a response with an IM
header that includes a delta-coding, if the request included more
than one entity tag in its If-None-Match header field.
[CODE(HTTP)[Delta-Base]] 頭欄は、[[要求]]が [CODE(HTTP)[[[If-None-Match]]
頭欄に複数個の実体札を含めていたなら、差分符号化を含む
[CODE(HTTP)[[[IM]]]] 頭のある「「応答]]に含めなければ'''なりません'''。
> Any response with an IM header that includes a delta-coding MAY
include a Delta-Base header.
差分符号化を含む [CODE(HTTP)[IM]] 頭のある応答は
[CODE(HTTP)[Delta-Base]] 頭を含んで'''構いません'''。
> We are not aware of other cases where a delta-encoded response
MUST or SHOULD include a Delta-Base header, but we have not done
an exhaustive or formal analysis. Implementors might be wise to
include a Delta-Base header in every delta-encoded response.
他に差分符号化応答が [CODE(HTTP)[Delta-Base]] 頭を含まなければ'''ならない'''場合や含める'''べきである'''場合は思い付きませんが、
徹底的な調査や形式的な調査はしていません。
実装者はすべての差分符号化応答に [CODE(HTTP)[Delta-Base]]
頭を含める方が賢明でしょう。
> A cache or proxy that receives a delta-encoded response that lacks a
Delta-base header MAY add a Delta-Base header whose value is the
entity tag given in the If-None-Match field of the request (but only
if that field lists exactly one entity tag).
[CODE(HTTP)[Delta-Base]] 頭を欠いた差分符号化応答を受信した[[キャッシュ]]や[[串]]は、その値が要求の [CODE(HTTP)[If-None-Match]]
欄に与えられた実体札である [CODE(HTTP)[Delta-Base]] 頭を加えて'''構いません''' (が、 [CODE(HTTP)[If-None-Match]]
欄が丁度一つの実体札を挙げている場合のみです)。
]FIG]
[27] [[RFC 4229]] は[[IANA登録簿]]に状態「[[標準]]」で登録しています [SRC[>>26]]。
[REFS[
- [26] [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.39>
]REFS]