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 のデータを保存できる
Cookie
- 4KBまでしかデータを保存できない
- 有効期限をつけることができる
- その他色々な機能あり
WebStorage
- クライアントサイドのデータ保存をより直接的に管理するための仕組みのこと
- LocalStorage と SessionStorage の総称を言う