-
Notifications
You must be signed in to change notification settings - Fork 4
/
566.txt
118 lines (91 loc) · 3.64 KB
/
566.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
* 仕様書
[REFS[
- [1] [CITE@en[RFC 8030 - Generic Event Delivery Using HTTP Push]], [TIME[2020-03-09 00:13:33 +09:00]] <https://tools.ietf.org/html/rfc8030#section-5.2>
]REFS]
* 意味
[4]
[CODE[TTL:]] [[ヘッダー値]]は、
[[プッシュサービス]]が[[プッシュメッセージ]]を保持するべき[[秒数]]を指定します。
[SRC[>>1 5.2.]]
[12]
[[プッシュサービス]]は、
TTL
期間経過後、
[[プッシュメッセージ]]を[[利用者エージェント]]に配送しようとしては[MUST[なりません]]。
[SRC[>>1 5.2.]]
[13]
[[プッシュサービス]]は、
[[アプリケーションサーバー]]から[[プッシュサービス]]への送信や、
[[プッシュサービス]]から[[利用者エージェント]]への送信にかかる時間を考慮する義務はありません。
[[アプリケーションサーバー]]は [CODE[TTL:]]
値決定にこうした要素を考慮する必要があります。
[SRC[>>1 5.2.]]
* 文脈
[2] [[プッシュメッセージ]]は、
短期間しか有意義でないこともありますし、
保管や転送の資源節約のこともあり、
有効期限が設けられています。
[SRC[>>1 5.2.]]
[3] [[Web Push]] [[アプリケーションサーバー]]は、
[[プッシュ資源]]への[[要求]]に
[CODE[TTL:]]
[[ヘッダー]]を含めなければ[MUST[なりません]]。
[SRC[>>1 5.2.]]
[10]
[[プッシュサービス]]は、
要求されたより保持期間を短くする場合、
これを[[応答]]の
[CODE[TTL:]]
[[ヘッダー]]で示さなければ[MUST[なりません]]。
この場合値は要求された値[[以下]]でなければ[MUST[なりません]]。
[SRC[>>1 5.2.]]
* 構文
[5]
[[ヘッダー値]]は、
1つ[[以上]]の[[ASCII数字]]です。
[SRC[>>1 5.2.]]
[FIG(railroad)[
= +
== [[ASCII数字]]
]FIG]
* 処理
[8]
[[プッシュサービス]]は、
[[プッシュ資源]]への[[要求]]に
[CODE[TTL:]]
[[ヘッダー]]がないとき、
[CODE[400]]
[[応答]]を返さなければ[MUST[なりません]]。
[SRC[>>1 5.2.]]
[6] [[ヘッダー値]]は、
[[秒]]単位の[[時間]]を[[非負整数]]で指定したものです。
受信者は、[[2進数]]で保持する場合、
最低31ビットの[[非負整数]]を扱える[[算術型]]を使う[SHOULD[べきです]]。
[SRC[>>1 5.2.]]
[7]
受信者は、扱える値より大きな値が指定されたときや、
以後の計算で[[桁溢れ]]するなら、
2[SUP[31]]
とみなさなければ[MUST[なりません]]。
[SRC[>>1 5.2.]]
[9]
[[プッシュサービス]]は、
[[プッシュメッセージ]]の保持期間を指定よりも短くしても[MAY[構いません]]。
[SRC[>>1 5.2.]]
[11]
[[プッシュサービス]]は、
処理中の誤差を鑑みて TTL 値を調整することができます。
例えば[[プッシュメッセージ]]をサーバー群間で配布するときに、
[[clock skew]] や伝播遅延で誤りが蓄積するかもしれません。
[SRC[>>1 5.2.]]
-*-*-
[14]
値 [N[0]] の場合、
[[利用者エージェント]]が受信できる状態なら即座に配送されます。
そうでない場合は配送されずに捨てられます。
[SRC[>>1 5.2.]]
[15] 配送されても[[プッシュサービス]]はすぐに[[プッシュメッセージ]]を削除できるので、
[[利用者エージェント]]から受信肯定すら受け取れないかもしれず、
[[アプリケーションサーバー]]は[[肯定受領証を受信][受領証購読]]できる保証がありません。
[SRC[>>1 5.2.]]
* メモ