-
Notifications
You must be signed in to change notification settings - Fork 4
/
910.txt
128 lines (99 loc) · 6.3 KB
/
910.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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
[2] [DFN[[RUBYB[[[構造化実体タグ]]]@en[structured entity tag]]]]は、[[異体リスト検証子]]を含んだ[[実体タグ]]です。
* 仕様書
[REFS[
- [1] [CITE@en[RFC 2295 - Transparent Content Negotiation in HTTP]] ([TIME[2014-08-31 19:36:42 +09:00]] 版) <http://tools.ietf.org/html/rfc2295#section-9.2>
]REFS]
* 構文
[3] [[構造化実体タグ]]は、最後の [CODE(HTTP)[[[;]]]] とそれ以降末尾の [CODE(HTTP)[[["]]]]
の直前までを除去する (とともに [CODE(HTTP)[[[W/]]]] を無視する)
と[[異体リスト検証子]]となるような[[実体タグ]]です。
[EG[
[4] 例えば次の表のように整理できます [SRC[>>1]]。
,通常の[[実体タグ]] ,[[異体リスト検証子]] ,[[構造化実体タグ]]
,[CODE(HTTP)["etag"]] ,[CODE(HTTP)["vlv"]] ,[CODE(HTTP)["etag;vlv"]]
,[CODE(HTTP)[W/"etag"]],[CODE(HTTP)["vlv"]] ,[CODE(HTTP)[W/"etag;vlv"]]
,[CODE(HTTP)["a;b;c;"]],[CODE(HTTP)["a;b;c;"]],[CODE(HTTP)["a;b;c;;1234"]]
]EG]
[8] [[起源鯖]]は通常の[[実体タグ]]を次のように[[生成]]する[['''べきです''']] [SRC[>>1]]。
[FIG(list)[
- [9] 異なる[[隣接異体資源]]に同じ通常の[[実体タグ]]を使わないこと
- [10] 通常の[[実体タグ]]が[[隣接異体資源]]の通常の[[実体タグ]]と[[異体リスト検証子]]から構成される[[構造化実体タグ]]と一致しないこと
]FIG]
* 文脈
[7] 透過的に折衝された[[応答]]が[[実体タグ]]を含む場合は、
[[構造化実体タグ]]でなければ[['''なりません''']] [SRC[>>1]]。
またその[[異体リスト検証子]]部分は当該[[応答]]の [CODE(HTTP)@en[[[Alternates:]]]]
[[ヘッダー]]の[[キャッシュ検証子]]となるものでなければ[['''なりません''']]。
通常の[[実体タグ]]の部分は[[応答]]の [[payload body]] および [CODE(HTTP)@en[[[Alternates:]]]]
以外の[[実体ヘッダー]]の[[キャッシュ検証子]]となるものでなければ[['''なりません''']] [SRC[>>1]]。
* 処理モデル
[5] [[透過内容折衝]]に対応した[[串]]は、[[構造化実体タグ]]の構造を使って[[キャッシュ]]を最適化できます [SRC[>>1]]。
[6] 構造を使った最適化を行わない時は、通常の[[実体タグ]]として処理する[['''べきです''']] [SRC[>>1]]。
* 歴史
[FIG(quote)[
[FIGCAPTION[
[42] RFC 2295 (HTTP 透過内容折衝) 9.2 Structured entity tags
]FIGCAPTION]
> A structured entity tag consists of a normal entity tag of which the
opaque string is extended with a semicolon followed by the text
(without the surrounding quotes) of a variant list validator:
[DFN[構造化実体札]]は、通常の[[実体札]]である不透明文字列の後にセミコロンと[[変種目録検証子]]の文を
(囲んでいる引用符なしで) 続けたものです。
>
[PRE[
normal | variant list | structured
entity tag | validator | entity tag
-------------+----------------+-----------------
"etag" | "vlv" | "etag;vlv"
W/"etag" | "vlv" | W/"etag;vlv"
]PRE]
> Note that a structured entity tag is itself also an entity tag. The
structured nature of the tag allows caching proxies capable of
transparent content negotiation to perform some optimizations defined
in section 10. When not performing such optimizations, a structured
tag SHOULD be treated as a single opaque value, according to the
general rules in HTTP/1.1. Examples of structured entity tags are:
構造化実体札自体も実体札であることに注意してください。
札の構造化性により、10章で定義する最適化が行えます。
その最適化を行わない時は、構造化札は HTTP/1.1
の一般規則に従った単一の不透明値として扱う'''べきです'''。
構造化実体札の例 :
>
"xyzzy;1234" W/"xyzzy;1234" "gonkxxxx;1234" "a;b;c;;1234"
> In the last example, the normal entity tag is "a;b;c;" and the
variant list validator is "1234".
最後の例では、通常の実体札は [CODE(HTTP)[a;b;c;]] で変種目録検証子は
[CODE(HTTP)[1234]] です。
> If a transparently negotiated response includes an entity tag, it
MUST be a structured entity tag. The variant list validator in the
structured tag MUST act as a validator for the variant list contained
in the Alternates header. The normal entity tag in the structured
tag MUST act as a validator of the entity body in the response and of
all entity headers except Alternates.
透過折衝可能資源が実体札を含む場合、それは構造化実体札でなければ'''なりません'''。
構造化札の変種目録検証子は [CODE(HTTP)[[[Alternates]]]]
頭に含まれる[[変種目録]]の[[検証子]]として働かなければ'''なりません'''。
構造化札の通常の実体札は応答の[[実体本体]]及び
[CODE(HTTP)[Alternates]] 以外のすべての実体札の検証子として働かなければ'''なりません'''。
]FIG]
[FIG(quote)[
[FIGCAPTION[
[41] RFC 2295 (HTTP 透過内容折衝) 9.3 Assigning entity tags to variants
]FIGCAPTION]
> To allow for correct revalidation of transparently negotiated
responses by clients, origin servers SHOULD generate all normal
entity tags for the neighboring variant resources of the negotiable
resource in such a way that
クライアントが[[透過折衝応答]]を正しく再検証することができるように、
起源サーバーは折衝可能資源の[[隣接変種資源]]についてのすべての通常の実体札を
>
- 1. the same tag is never used by two different variants,
unless this tag labels exactly the same entity on all occasions,
- 2. if one normal tag "X" is a prefix of another normal tag "XY",
then "Y" must never be a semicolon followed by a variant list validator.
- 2つの異なる変種について同じ札は絶対に使用しない。
但しこの札がすべての場合に本当に同じ実体を札付けする場合を除く。
- 通常の札 [SAMP(HTTP)[X]] が他の通常の札 [SAMP(HTTP)[XY]]
の接頭辞であるなら、 [SAMP(HTTP)[Y]] はセミコロンとそれに続く[[変種目録検証子]]には決してならない。
となるように生成する'''べきです'''。
]FIG]