【自分用メモ】cookieとSessionについて


Cookieについて

  • Cookieとは、ユーザーの情報を一時的に保存するテキストファイルのことである。
  • Cookieを利用することによって、サーバー側からクライアントに特定のパラメータを覚えさせることができる。
    • クライアントは同じサーバーにアクセスする際、覚えておいたパラメータをHTTPリクエストに付与して送信する。
    • ex.) ショッピングサイトに再訪問したときにすでにログイン状態になることができる。

Cookieの発行単位

  • Cookieは、ブラウザごとに発行される

別タブの扱いについて

同じブラウザで別タブを開いた時は、Cookieは一緒  
違うブラウザの場合は、新たにCookieが発行される

セッションについて

HTTPのセッションとは

セッションとは、Webサイトにアクセスして行う一連の流れのこと

セッションIDについて

  • セッション管理のために付与される固有の識別情報
  • セッションIDはユーザーがアクセスやログインしたときに発行される
  • 一定時間アクセスがなかったり、ログアウトするとセッションIDは破棄される

セッション管理が必要な理由

  • HTTPは、クライアント/サーバー間でリクエスト/レスポンスが完了したら接続が切断される
  • サーバーに複数のリクエストを送っても同一のクライアントから送信されたものであるかどうか判断できないため

フォームの基本的な流れ

Cookie、セッションについて具体的にどういうことに使われているのか、

例として、申し込みフォームの基本的な流れをあげる。フォームの基本的な画面として

- 入力画面
- 確認画面
- 完了画面

がある。流れは

1. 初めてユーザーが入力画面で情報を入力して、送信ボタンを押す
2. サーバーが、セッションIDを発行し、tempファイルに保存する。
3. サーバーがユーザーに確認画面と、CookieにセッションIDを保存させる
4. ユーザーが確認画面の完了ボタンを押す。このとき、ユーザー側は、Cookieをサーバーに送る
5. サーバーは、受信したCookieを元に完了画面を送信する
6. ユーザーは完了画面の完了ボタンを押す。このとき、Cookieもサーバーに送信する
7. サーバーは、Cookieを元にセッションを終了させる

となる