Cookie は、サーバーがブラウザへ保存させ、以後のリクエストでも送り返してもらうための小さなデータです。
HTTP は基本的にステートレスなので、前のアクセスと同じブラウザから来たか を判断する仕組みとして Cookie がよく使われます。
Web では主に次の用途で使われます。
- セッション の識別
- ログイン状態の維持
- 言語設定や表示設定の保存
- 計測や分析用の識別
大事なのは、Cookie が ログインそのもの ではないことです。
多くの Web アプリでは、サーバー側で セッション を管理し、その参照用のIDを Cookie に入れてブラウザへ持たせます。つまり、ログイン状態の本体はサーバー側で、Cookie はその状態を呼び出すための札として使われることが多いです。
また、Cookie は属性設定が重要です。
特にログイン用では HttpOnly Secure SameSite の設定が大事で、XSS や CSRF の被害を減らす助けになります。
Cookie にはブラウザ終了までを前提とするセッションCookieと、期限を持つ永続Cookieがあります。
ログイン維持で使う場合は、保持期間や失効方法まで含めて設計しないと危険です。
もうひとつ大事なのは、Cookie が ブラウザに置けるデータ全部の置き場 ではないことです。
昔はクライアント側保存の代表のように扱われることもありましたが、今は Web Storage など別の保存先もあります。Cookie はリクエストのたびに送られるので、単なる一時保存や大量データ置き場として使うのには向いていません。
実務では、何を保存するか と同じくらい どの範囲に送るか いつ失効させるか が重要です。
Domain や Path を広げすぎると不要な画面にも送られやすくなりますし、長期間残る Cookie は共有PCや端末紛失時のリスクも上がります。ログイン用で使うなら、セッション設計や再認証方針と合わせて考えるのが基本です。
要するに Cookie は、ブラウザとサーバーの間で状態を運ぶための仕組み です。
詳しくは Cookieとは?セッションやログイン状態とどう関係するのか で整理しています。