学習日記

学習記録

Cookieとセッション

違いが分かりますか?

本日は題名にもある通り、Cookieとセッションの違いってなーに?ということを書いていきます

この2つの違いについて貴方は即答できるでしょうか?

僕は無理でした。

なので備忘録を兼ねて書いていきたいと思います。

とはいっても前提の知識を間違えていたらしょうがないので、Cookieとセッションそれぞれについてまずは見ていきます。

Cookieって何?

正確には"HTTP COOKIES"と言います。

HTTPはステートレスなプロトコルであるため、ブラウザとサーバー間でやりとりを保持しておく機能がありません。

そのためやりとりを保存しておく必要のある場合にこのCookieと呼ばれるデータを使います。

Cookieはウェブサイトから送られてくる情報の一部で、HTTPレスポンスのメッセージヘッダーを利用して送られてきます。

そしてこの送られてきたCookieをブラウザは自身に保存しておき、再度同じサーバーにアクセスした際にはサーバーがCookieを読み戻し、今アクセスしているのがどんなユーザーなのかを識別します

これらがCookieの役割ですが、実はCookieには2種類あります。

とはいっても担っている仕事は同じです。

ではどう分かれているのでしょうか?

セッションCookie

一つ目はこちら、セッションCookieです。

有効期限が特に設定されていないCookieで、Webブラウザが終了すると削除されます。

パーシステントクッキー

二つ目はこちら、パーシステントクッキーです。

有効期限が設定されている、もしくは有効期限が無限のCookieです。

よく一度ログインしたら翌日以降も勝手にログインしてくれるサイト等を皆さん知っていると思いますが、それらはこのパーシステントクッキーを採用しているからです。

以上が簡単ではありますが、Cookieの説明になります。

セッションって何?

では次にセッションについて見ていきます

セッションとは一連の関連性のある処理をセッションと呼びます。

ECサイトを例に出せば、商品を選ぶ、かごに入れる、かごを確認する、決済をする といった処理の流れです。

上の例のように一人のユーザーからの処理の流れを管理したい場合、Cookieを使ってセッション管理が行われます。

例えばIDとパスワードを入力しログインすると、サーバーがセッションIDを生成し、Cookieに乗せて渡します。

次回からそのユーザーはリクエストを送る際にセッションIDをリクエストする際に送るようにし、サーバー側がセッションIDを用いてデータを管理する。

以上がセッションの説明になります。

ではいよいよ違いの説明に入りますが、ここまで説明してきたことを単純にまとめているだけです

Cookieとセッションの違い

Cookieとは何か?

Cookieは、ウェブブラウザとウェブサーバー間で情報をやり取りするための仕組みです。ウェブサーバーから送信され、ウェブブラウザに保存される情報であり、ブラウザが同じサイトに再度アクセスする際にサーバーに情報を提供します。

セッションとは何か?

セッションは、一連の関連性のある処理の流れのことです。例えば、ECサイトで商品を選択し、カートに追加し、購入するといった一連の手順がセッションとして扱われます。セッションはサーバー側で管理され、ユーザーごとに一意のセッションIDが割り当てられます。

Cookieとセッションの違い

  1. 保存場所:
    • Cookieはブラウザに保存されます。
    • セッションはサーバー側で管理されます。
  2. 有効期限:
    • Cookieは有効期限が設定されている場合はブラウザが終了しても削除されません。
    • セッションの有効期限はサーバー側で任意に設定されます。
  3. セキュリティ:
    • Cookieはブラウザに保存されるため、不正アクセスのリスクが大きいです。
    • セッションはサーバーに保存されているため、リスクがない訳ではないがCookieに比べれば低いです。

以上がCookieとセッションの違いになります。

もし突っ込みどころがありましたら優しく教えてください。

それではお疲れ様でした。

参考サイト様

Cookieとセッション管理 - Qiita

クッキー(Cookie)について

参考書籍 この1冊で全部わかる Web技術の基本