cookieとlocalStorageの違いとして正しいものはどれか。
解説
cookieとlocalStorageはどちらもブラウザにデータを保存する仕組みですが、決定的な違いはcookieはHTTPリクエストのたびにサーバーへ自動送信されるという点です。localStorageはブラウザ内に閉じており、JavaScriptで明示的に取得してfetchなどに載せない限りサーバーには届きません。他の選択肢について補足すると、cookieには Expires や Max-Age を指定すればブラウザを閉じても残る永続cookieがあるため「必ず消える」は誤りです。localStorageは文字列しか保存できず、オブジェクトは JSON.stringify() で文字列に変換してから保存する必要があります。cookieが自動送信されることの意味この「自動送信」の性質がcookieの強みでもありリスクでもあります。強み: セッション管理に最適。サーバーがSet-Cookieヘッダーでトークンを渡せば、以降のリクエストでクライアント側のコードを書かなくても自動的に送信されるリスク: CSRF(クロスサイトリクエストフォージェリ)攻撃の原因になる。悪意あるサイトからのリクエストにもcookieが自動で付与されてしまうこのリスクを防ぐために SameSite 属性や HttpOnly 属性が存在します。どう使い分けるかcookie: 認証トークン、セッションIDなどサーバーが毎回必要とするデータ。HttpOnly を付ければJavaScriptから読めなくなり、XSS対策にもなるlocalStorage: テーマ設定、下書きデータなどサーバーに送る必要がないデータ。容量も約5MBとcookie(約4KB)より大きい「サーバーが知る必要があるか?」を基準にすると迷いにくくなります。必要ならcookie、不要ならlocalStorageです。