149
121

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Cookieとキャッシュとセッションの違いをまとめた

Last updated at Posted at 2018-09-18

それぞれの違いについて

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ページの情報」なのかの部分に違いがあると理解しました。:thinking:

  • セッションはCookieやキャッシュのいわゆる「固有のデータ」ではなく、「Webページ上(通販サイトなど)で操作したデータ(履歴)」であり、ユーザの情報(Cookie)を使用してログインの制御をする仕組みと理解しました。

to be continued...

実現される環境にも違いがあるようで、セッションはアプリケーション側で、CookieはブラウザとWebサーバの間でやり取りされる仕組みのようです。

参考文献

■ Cookieとキャッシュについて

■ セッションについて

■ 本

  • プロになるためのweb技術入門
149
121
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
149
121

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?