HTTP Cookie及びセッションの概要記事。
Cookie
- ユーザーの情報を一時的にクライアント(ブラウザ)に保存する仕組み・その情報を指す。
Cookieの用途
- ユーザー情報を一時的に保存し、その情報を利用したユーザーの特定、情報入力の省略用途で利用する。
- 例:ログイン画面フォームを入力状態とする。
Cookieのやり取り
初回
- ②レスポンス(Cookieの保存を指示)
- サーバーは、レスポンスに
Set-Cookie
ヘッダを付与し、クライアントに対して「Cookieの保存」を指示できる。 -
Set-Cookie
ヘッダには、Cookieの有効期限やCookieを送るドメイン、有効パスなどの属性を、;
で区切って記述する。
- サーバーは、レスポンスに
- ③Cookieを保存
- サーバーからの
Set-Cookie
ヘッダの内容に基づき、クライアントはCookieを保存する。
- サーバーからの
2回目以降
- ①リクエスト(Cookieを含む)
- クライアントは、リクエストに
Cookie
ヘッダを付与し、サーバーに「どのようなCookieを保存している」かを表明することができる。 - Cookieが存在する限り、常にリクエストにCookieヘッダを付与する。
- クライアントは、リクエストに
セッション
- ユーザーの一連の処理・操作を表す情報。
- 例:ログイン~ログアウトまで
- 「セッションID」を使用して同一セッションを管理する。
- セッションIDはCookieに保存し、HTTPヘッダーに付与して送受信を行う。
- ユーザーがブラウザを閉じるか、サイトを離れた際に、削除する。
- 通常30分後にセッションは終了される。
セッションの用途
- ユーザーの操作に関する情報を一時的に保存するために利用する。
- 例:ECサイト閲覧中に、商品をカートに入れた後、サイトを離れ、再度アクセスしたときに、カートに商品が入ったままの状態とする。
Cookieを用いたセッション管理
Cookieとセッションの違い
クッキー | セッション | |
---|---|---|
用途 | ユーザーの識別情報の記憶 セッションIDの送受信 |
ユーザーの一連の操作の記憶 |
保存場所 | クライアント(ブラウザ)のみ | サーバー |
無効化 | 可 | 不可 |