/
669.txt
76 lines (52 loc) · 3.79 KB
/
669.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
* ストレージの種類
[1] [[Web]] には次の[[著者]]が一部または全部を制御できる[[ストレージ]]があります。
[FIG(short list)[
- [[Web Storage]]
-- [CODE(DOMa)@en[[[localStorage]]]]
-- [CODE(DOMa)@en[[[sessionStorage]]]]
-- [CODE(DOMa)@en[[[globalStorage]]]] (廃止)
- [[IndexedDB]]
- [[クッキーストア]]
- [[Cache API]]
- [[File System API]]
- [[Web SQL Database]] (廃止)
]FIG]
[14] [[プラグイン]]や [[HTC]] が[[ストレージ]]を用意していることがあります。
[2] この他に [[HTTPキャッシュ]]や [[AppCache]] があります。
[15] [CODE(DOMm)@en[[[pushState]]]] や [CODE(DOMm)@en[[[replaceState]]]]
も一時[[ストレージ]]として機能します。
;; [16] [[bfcache]] も同様に一時ストレージと言えなくもありません。しかし[[著者]]視点で[[ストレージ]]として利用するのは困難です。
[12] [[Blob URL Store]]、[[大域オブジェクト]]、[[JavaScript]] の[[呼び出しスタック]]なども、
広い意味で一時ストレージと言えるかもしれません。 [[expando]]
を考慮すると任意の [[JavaScript]] [[オブジェクト]]は、この意味の[[ストレージ]]です。
しかし、これらは極めて[[永続性]]に乏しいものです。
[17] [[証明書データベース]]もある意味ではストレージです。
[3] [[ストレージ]]の管理のための [[Web API]] として、 [[Quota Management API]]
や [[Storage Standard]] があります。
[18] 関係する[[仕様書]]上の概念として、[[ストレージミューテックス]]があります。
* 仕様書
[REFS[
- [5] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-03-05 09:33:40 +09:00]] 版) <https://html.spec.whatwg.org/#disk-space-2>
]REFS]
* サイズ制限
[6] [[利用者エージェント]]は、悪意ある[[著者]]が[[ディスク]]を無駄遣いすることを防ぐため、
[[Web Storage]] [[ストレージ]]領域上の利用できる最大量を制限する[['''べきです''']] [SRC[>>5]]。
[7] [[利用者エージェント]]は、 [CODE[example.com]] に対して [CODE[a.example.com]]
のように[[サブドメイン]]を使って上限を回避できないようにする[['''べきです''']] [SRC[>>5]]。
つまり[[サイト][eTLD+1]]単位を考慮した制限が必要です。
[11] 予測可能性を考慮し、[[圧縮]]していない状態でのサイズで制限する[['''べきです''']]
[SRC[>>5]]。
[10] [[HTML Standard]] は各[[起源]]に5[[MB]]を割り当てることを提案しつつ、実装者からのフィードバックを募っています [SRC[>>5]]。
[8] [[利用者エージェント]]は、 [[quota]] に達した時に[[利用者]]に対して、
当該[[サイト]]により多くの領域を認めるかどうか尋ねても構いません [SRC[>>5]]。
[9] [[利用者エージェント]]は、[[利用者]]が各[[ドメイン]]がどれだけの領域を使っているか見られるようにする[['''べきです''']] [SRC[>>5]]。
[4] [[クッキー]]に関しては、[[クッキーのサイズ制限]]も参照。
* 関連
[13] [[HTTP]] の[[状態符号]] [CODE(HTTP)[[[507]]]] は、[[サーバー]]側のストレージの容量不足を表すものです、
本項でいう[[クライアント]]側の[[ストレージ]]とは異なります。
[19] [CITE@en[Make site storage origin-bound · whatwg/storage@cd1ea3a]]
([TIME[2016-04-01 19:36:21 +09:00]] 版)
<https://github.com/whatwg/storage/commit/cd1ea3a03409766e2d91333bddffc18f3f9b1cb5>
[20] [CITE@en[Mention application cache and notifications under site storage]]
([[annevk]]著, [TIME[2016-06-24 17:34:04 +09:00]])
<https://github.com/whatwg/storage/commit/dd5aa801bc6b3234d266e8e013b1f8e8aded17c9>