Webにおけるストレージ

ストレージ (Web)

仕様書

ストレージの種類

[1] Web には次の著者が一部または全部を制御できるストレージがあります。

[23] セッションを超えて持続するもの、しないもの、 明示的なストレージとしての性質が強いもの、キャッシュとしての性質が強いもの、 サイトごとの設定に属するものなど色々あります。

[14] プラグインHTCストレージを用意していることがあります。

[2] この他に HTTPキャッシュAppCache があります。 とりわけクッキー実体タグは、永続性が強いものです。

[15] pushStatereplaceState も一時ストレージとして機能します。

[16] bfcache も同様に一時ストレージと言えなくもありません。しかし著者視点でストレージとして利用するのは困難です。

[12] Blob URL Store大域オブジェクトJavaScript呼び出しスタックなども、 広い意味で一時ストレージと言えるかもしれません。 expando を考慮すると任意の JavaScript オブジェクトは、この意味のストレージです。 しかし、これらは極めて永続性に乏しいものです。

[17] 証明書データベースもある意味ではストレージです。

[3] ストレージの管理のための Web API として、 Storage Standard があります。

[27] かつて Quota Management API も提案されていました。

[22] キャッシュは、古くからメモリーキャッシュディスクキャッシュの両方が実装されています。 Webブラウザーはアクセス頻度やディスクの空き容量などを考慮して両者を適宜使い分けています。

[26] プラグインブラウザー拡張は、他に独自のストレージを持っていることがあります。

[18] 関係する仕様書上の概念として、ストレージミューテックスがあります。

サイズ制限

[6] 利用者エージェントは、悪意ある著者ディスクを無駄遣いすることを防ぐため、 Web Storage ストレージ領域上の利用できる最大量を制限するべきです >>5

[7] 利用者エージェントは、 example.com に対して a.example.com のようにサブドメインを使って上限を回避できないようにするべきです >>5。 つまりサイト単位を考慮した制限が必要です。

[11] 予測可能性を考慮し、圧縮していない状態でのサイズで制限するべきです >>5

[10] HTML Standard は各起源に5MBを割り当てることを提案しつつ、実装者からのフィードバックを募っています >>5

[8] 利用者エージェントは、 quota に達した時に利用者に対して、 当該サイトにより多くの領域を認めるかどうか尋ねても構いません >>5

[9] 利用者エージェントは、利用者が各ドメインがどれだけの領域を使っているか見られるようにするべきです >>5

[4] クッキーに関しては、クッキーのサイズ制限も参照。

プライバシー

[24] ストレージは、その性質上、 fingerprinting vector です。

関連

[25] Webアプリケーションのための本項のストレージの他に、 Webブラウザーの実行されるプラットフォームファイルシステムにも限定的なアクセスが提供されています。

[13] HTTP状態符号 507 は、サーバー側のストレージの容量不足を表すものです、 本項でいうクライアント側のストレージとは異なります。

歴史

[19] Make site storage origin-bound · whatwg/storage@cd1ea3a ( 版) <https://github.com/whatwg/storage/commit/cd1ea3a03409766e2d91333bddffc18f3f9b1cb5>

[20] Mention application cache and notifications under site storage (annevk著, ) <https://github.com/whatwg/storage/commit/dd5aa801bc6b3234d266e8e013b1f8e8aded17c9>

[21] Explain the intent behind the persistent permission (annevk著, ) <https://github.com/whatwg/storage/commit/e1f556d4c62b7cb619048f853f6dd45bcf11bfb2>