Open5

WebStorage、cookie、SessionStorage、LocalStorage について

酒井 駿酒井 駿

「LocalStorage」はWeb Storage APIの一部で、ブラウザによるデータの保存を提供します。

LocalStorageに保存されたデータは、ユーザーが明示的に消去するか、ブラウザのキャッシュをクリアするまで残り続けます。また、LocalStorageは通常、各オリジン(ドメイン)につき5MBから10MBのデータを保存することができます。

これに対して「SessionStorage」も同様にWeb Storage APIの一部ですが、セッションが終了するとデータが消去されます。

また、「cookie」はデータ量が非常に限られており(通常は4KBまで)、有効期限を設定することができます。

「WebStorage」という用語はLocalStorageとSessionStorageを含む広範なカテゴリーを指します。

酒井 駿酒井 駿

5MBは約5,242,880文字(バイト)で、10MBは約10,485,760文字(バイト)まで保存できます。ただし、これは1文字を1バイトと仮定した場合の計算であり、実際には文字のエンコーディングによって1文字あたりのバイト数は異なる可能性があります。特に、多くのモダンなエンコーディング(例えばUTF-8)では、特定の文字は複数のバイトを使用することがあります。

酒井 駿酒井 駿

ASCII: ASCIIエンコーディングでは、1文字は1バイト(8ビット)です。ASCIIは英数字や一部の記号を含み、128個の異なる文字を表現できます。

UTF-8: UTF-8エンコーディングでは、文字によって使用するバイト数が異なります。例えば、標準のASCII文字は1バイトを使用しますが、多くのラテン文字は2バイト、アジアの文字(中国語、日本語、韓国語など)は3バイトまたはそれ以上を使用することがあります。UTF-8は可変長エンコーディングであり、1バイトから4バイトまでの範囲で文字を表現します。

UTF-16: UTF-16エンコーディングでは、一部の文字は2バイトを使用し、他の文字(例えば絵文字や特定のアジア言語の文字)は4バイトを使用します。

UTF-32: UTF-32エンコーディングでは、すべての文字は4バイトを使用します。

酒井 駿酒井 駿

SessionStorage について (使ったことない)

セッションのスコープ

SessionStorageに保存されたデータは、ブラウザのタブまたはウィンドウごとに限定されます。つまり、同じウェブサイトを異なるタブやウィンドウで開いた場合、それぞれのタブやウィンドウは独自のSessionStorageを持ちます。

データの存続期間

SessionStorageに保存されたデータは、ブラウザのセッションが終了するまで(つまり、ブラウザのタブやウィンドウが閉じられるまで)保持されます。セッションが終了すると、関連するSessionStorageのデータは自動的に消去されます。

データのアクセス範囲

SessionStorageに保存されたデータは、同じオリジン(同じプロトコル、ドメイン、ポート)からのスクリプトによってのみアクセスできます。これにより、データのセキュリティが保たれます。

使用例

SessionStorageは、フォームのデータの一時保存、ユーザーのセッション固有の設定(例:タブの状態)、一時的な認証データなど、短期間のみ必要な情報の保存に適しています。

容量制限

通常、SessionStorageは約5MBのデータを保存できますが、ブラウザによって異なる場合があります。
SessionStorageは、LocalStorageと似ていますが、主な違いはデータの存続期間です。LocalStorageに保存されたデータはブラウザを閉じても残りますが、SessionStorageのデータはブラウザのセッションが終了すると消去されます。

酒井 駿酒井 駿

まとめ

LocalStorage

  • ユーザーが明示的に消去するか、ブラウザのキャッシュをクリアするまで残り続ける。
  • 5 ~10MBのデータを保存することができる。(約500万文字)

SessionStorage

  • 有効期限はブラウザのセッションが終了するまで (タブやウィンドウが閉じられるまで)
    • 故にフォームのデータの一時保存やタブの状態の保存などの利用に適している
  • 5M のデータを保存できる
  • 4KBまでしかデータを保存できない
  • 有効期限をつけることができる
  • その他色々な機能あり

WebStorage

  • クライアントサイドのデータ保存をより直接的に管理するための仕組みのこと
  • LocalStorage と SessionStorage の総称を言う