それぞれの違いについて
Cookieとは
Cookie(クッキー)とは、ホームページを訪問したユーザーの情報を一時的の保存する仕組み、またはそのデータです。
ID、パスワード、メールアドレス、訪問回数などが ユーザー情報として保存されます。
これによって再訪問したときに ユーザーを特定し、情報を入力する手間が省けます。
ショッピングサイトに訪問したとき、すでにログイン状態になっている、以前カートに入れた商品がそのまま残っているのは、Cookie機能がはたらいているからです。
- Webページ(TwitterやFacebookなど)でログインした時の情報を保存して、入力する手間を省いてくれる仕組みのこと。
- ログインをしたあとの画面(URL)にログアウトしたあとアクセスするとエラー画面になる。ログイン状態を保つ仕組みでもある。
-
Cookie
内にはpasswordやuser_idなどがあるためセキュリティ上危険。そのためセッション
により安全に情報を保持する。
セッションとは
セッションとは、一連のインタラクティブな操作のこと。
例えばECサイトには、商品を探し、カートに入れ、購入するという一連の流れがある。
このように同一利用者からのアクセスを関連性のある一連のアクセスとして扱いたい場合、Cookieを使ってセッション管理が行われる。
-
Cookie
を使用した一連の操作のこと。Cookie
によるセッションID
の管理が行われる。 - Webサーバは
Cookie
を受け取ると格納されたセッションID
を元に、メモリ上にあるログイン状態を復元する。 - セッションIDによるやりとりにより安全性が高い。
キャッシュとは
キャッシュとは、閲覧したWeb ページの情報を一時的に保存する機能です。
キャッシュデータを保存しておくと、2回目に同じWebページに訪問したときに表示するスピードが上がりより閲覧しやすくなります。
- 閲覧ページの情報(
キャッシュ
)を保存することにより、再度閲覧したページにアクセスする際のページの読み込みスピードを早める仕組みのこと。 -
セッション
により情報を管理しているため、ブラウザバックや「戻るボタン」により一つ前の状態に戻れていまう。ショッピングサイトなら、注文後一つ前に戻ると注文前の状態になり、再注文できてしまう。 - 誤動作しないようにキャッシュを無効化するなどして対策をする必要がある。
まとめ
-
Cookieとキャッシュは「ユーザ情報」なのか、「Webページの情報」なのかの部分に違いがあると理解しました。
-
セッションはCookieやキャッシュのいわゆる「固有のデータ」ではなく、「Webページ上(通販サイトなど)で操作したデータ(履歴)」であり、ユーザの情報(
Cookie
)を使用してログインの制御をする仕組みと理解しました。
to be continued...
実現される環境にも違いがあるようで、セッションはアプリケーション側で、CookieはブラウザとWebサーバの間でやり取りされる仕組みのようです。
参考文献
■ Cookieとキャッシュについて
■ セッションについて
- https://qiita.com/mogulla3/items/189c99c87a0fc827520e
- https://thinkit.co.jp/story/2015/11/02/6565
- http://e-words.jp/w/%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3ID.html
■ 本
- プロになるためのweb技術入門