# Cookie localStorage sessionStorage の違い

項目 Cookie Local Storage Session Storage
保存場所 ブラウザ ブラウザ ブラウザ
データの型 文字列のみ 文字列のみ 文字列のみ
有効期限 任意に設定 消さない限り半永久的 セッションやタブを閉じるまで
保存容量 4KB 5MB ~ 10MB 5MB ~ 10MB
サーバにデータ送信 自動送信する しない しない
操作言語 バックエンド&フロントエンド フロントエンド フロントエンド

Cookie はくらいクライアント側の汎用記憶領域として使用されていますが、ES6 以降にクライアントストレージ向けの新しい Web Storage API として、localStorage sessionStorage があります。

Cookie は、サーバーがユーザーのウェブブラウザに送信する小さなデータであり、ブラウザに保存され、その後のリクエストと共に同じサーバーへ返送されます。一般的には、 2 つのリクエストが同じブラウザから送信されたものであるかを知るために使用されます。例えば、ユーザーのログイン状態を維持することができます。

Cookie の用途

  • ログイン状態などを維持
  • ユーザー設定やサイトの設定を保存
  • ユーザーの行動トラッキング記録

セッション Cookie はページ閉じられてセッション終了した時、または指定された期間が経過した後に削除されます。
Expires Max-Age 属性で Cookie の有効期限を設定します。

ブラウザによって Cookie 上限サイズが違いますが、Google Chrome 含めて多くのブラウザの Cookie は 4096byte (4k) まで保存可能です。

Cookie を作成していて Cookie が 4096 バイト未満の場合、RFC に準拠するすべてのブラウザとユーザエージェントでサポートされます。

セッション ID やトークンを保存するために Cookie 使うことが一般的ですが、Cookie が無効になっているというメッセージが表示された場合、Cookie を有効にする必要があります。

ログイン画面からログインして一瞬でログアウトされる場合、Cookie が有効になっていない可能性があります。

# localStorage

localStorage はブラウザを閉じてもデータは維持され、有効期限がなく消さない限りずーとブラウザに記憶され、オリジンごと保管領域管理されます。

# 使い方

// 値セット
localStorage.setItem("key", "value");

// 値取得
let val = localStorage.getItem("value");

// 値削除
localStorage.removeItem("key");

// すべてのデータをクリア
localStorage.clear();

# sessionStorage

sessionStorage は localStorage とよく似ていますが、違いは有効期限にあります。
sessionStorage はページの再読み込みや復元を含むブラウザーを開いている間に使用可能でオリジンごと保管領域管理されます。

# 使い方

// 値セット
sessionStorage.setItem("key", "value");

// 値取得
let data = sessionStorage.getItem("key");

// 値削除
sessionStorage.removeItem("key");

// すべてのデータをクリア
sessionStorage.clear();
2022-04-16
  • javascript

同じタグを持つ記事をピックアップしました。