クッキー(Cookie)とセッションとキャッシュの違いは何か?

2020年3月15日

Web担当者になると直面する用語

Web担当者になるとクッキー、セッション、キャッシュはどれも耳にする言葉です。
また、Web担当者だけでなく、Webシステムを扱う情報システム部に所属される方も聞いたことがある用語ではないでしょうか。
どれもWebの記憶に関するものなので、それぞれの用語がごっちゃになってしまいがちです。
今回はクッキー、セッション、キャッシュを、それぞれの違いに注目してご説明いたします。

クッキー(Cookie)について

クッキー(Cookie)とは何か?

クッキー(Cookie)というのはユーザーのコンピュータに保存される小さなファイルのことです。
クッキーファイルは自動的にクッキーファイル(ブラウザのメモリ)に格納され、通常次の内容を保存しています。

  • クッキーが送信されたサーバーの名前
  • クッキーの有効期間
  • 値 – 通常はランダムに生成された一意の番号

これらのファイルは特定のクライアント(ブラウザ)とWebサイトに固有のデータを保持するように設計されており、Webサーバーまたはクライアントコンピュータのどちらからでもアクセスできるようになっています。

クッキー(Cookie)の種類

クッキーには、セッションクッキーと永続クッキーの2種類があります。セッションクッキーは、Webサイトにアクセスしている間、ブラウザに一時的に作成され、ユーザーがサイトを離れると、セッションクッキーは削除されます。
一方、永続クッキーはユーザーがブラウザを閉じても削除されず、そのクッキーを作成したWebサイトにアクセスすると再度アクティブになります。永続クッキーは、Cookieのファイル内で設定された期間、ブラウザに残ります。

クッキーは何に利用されているか?

ユーザーの情報を保存している

上述の通り、クッキーはWebサイトにアクセスしたユーザーの情報を保存しています。
例えば、Webサイト上であなたの名前やEメールアドレスなどをフォームに入力することがあります。これがクッキーを使用しているWebサイトですと、フォームに入力した情報はクッキーに変えられて、ユーザーのコンピュータに保存されます。その結果、サーバーは特定のユーザーに合わせたページを配信することができます。

何かと話題のクッキー(Cookie)

このクッキーですが、最近何かと話題になっております。
欧州でGDPR(General Data Protection Regulation、EU一般データ保護規則)が施行され、情報の取り扱いに対する規則が厳格になっていく中で、おそらく現在最も情報を取り扱っているGoogleはWebサイトのアクセス数を計測する「Googleアナリティクス」を導入しているページは、サイトポリシーにCookieを利用してアクセス数を計測していることを明言しなければならないというルールを発表いたしました。
これまで何気なくアクセス解析などに使用していたユーザーのCookieも、個人の情報の取得として、厳格に取り扱っていくということなのですが、まるでCookieが個人情報を盗用している風潮になりつつあるのは残念です。
本来はWebサイトを便利に使うための機能であるのですが、無制限に情報を取りすぎていたということですね。

クッキー(Cookie)を削除する方法

クッキーはブラウザから削除することが可能です。
ブラウザは定期的にバージョンアップし、クッキーの削除方法も一定ではありませんが、参考までに2019年6月時点での削除方法をいくつかご紹介いたします。

GoogleChrome

メニューの「設定」から「プライバシーとセキュリティー」に移動し、「閲覧履歴を消去」ボタンをクリックします。

FireFox

ツールメニューの「オプション」を選択し、「プライバシーとセキュリティー」のメニューに移動します。
「Cookie とサイトデータ」の項目から「データを消去」を選択します。

インターネットエクスプローラ

ツールメニューのインターネットオプションを選択し、「全般」のタブの「閲覧の履歴」の項目の「削除」ボタンを選択します。

セッションについて

セッションとは何か?

セッションは、クッキーと同じくサーバー上の一時ディレクトリに保存されたデータのことです。このデータは、ユーザーがWebサイトにいる間、サイト上のすべてのページで利用可能になります。

セッションは何に利用されているか?

セッションもクッキーと同様にデータを保存していますが、セッションは接続中のユーザーの活動に関連する情報を一時的に保存しています。
例えば、ショッピングサイトを閲覧していて、ある商品をショッピングカートに入れた後、Webサイトを離れ、再度戻ってきたときに、ショッピングカートに商品が入ったままになっているのは、セッションによって情報を保存していたからです。

クッキー(Cookie)とセッションは2つで1つ(!?)

先ほどのショッピングカートの機能も、セッションだけの力では実現することはできません。ショッピングカートに商品を入れたままにする、直前に見ていたページから表示するなど、ユーザーの情報・行動の履歴にあわせてWebサイトがサポートしてくれる機能の多くは、クッキーとセッションを組み合わせて実現しています。
簡単に両者の役割をまとめると、クッキーは「誰が」の情報を取得し、セッションは「何をしたか?」という情報を取得しています。
上述の通り、クッキーというのはそこまで大量の情報を保存しているわけではありません。しかし、ユーザーを認識する値を生成してくれます。
一方、セッションはユーザーのさまざまな行動の情報を保存しています。しかし、重要な「誰が」という情報を取得することは苦手としています。
そこで、クッキーが取得した「誰が?」という情報と、セッションが取得した「何をしたか?」という情報をすり合わせ、Webサイトはさまざまなサポートを提供することに成功しています。

セッションを削除する方法

クッキーと異なり、セッションのデータは基本的にセッションが終了した後、自動的に消去されます。セッションが終了するのは、ユーザーがブラウザを閉じるか、サイトを離れた後です。サーバーは、通常は30分後にセッションを終了します。

クッキー(Cookie)とセッションの違い

小括として、クッキーとセッションの違いをまとめておきましょう。
クッキーもセッションも情報を保存するために使用されることには違いがありません。
違いとしては保存場所が挙げられます。クッキーはクライアント側のマシン(主にブラウザ)にのみ保存され、セッションはブラウザだけでなく、サーバーにも情報が保存されます。
また、保存の期間にも大きな違いがあり、セッションはユーザーがブラウザを閉じるか、サイトを離れると情報が削除されます。一方、クッキーには永続クッキーがあり、情報を保持し続けます。
さらに、大きなポイントとしてはセッションは無効にできませんが、クッキーは無効にすることができます。

キャッシュについて

キャッシュとは何か?

キャッシュという用語はコンピュータ用語にもあります。
コンピュータに使われるキャッシュは、よく使うデータへのアクセスを速くするために、より高速な記憶装置に一時的に保存する仕組みのことを指します。
こうした仕組みはWebサイトで使われるキャッシュでも同様です。
Webサイトのキャッシュは、頻繁にアクセスされるコンテンツを保存し、その情報を呼び出すことで表示速度を高速化します。

キャッシュを削除する方法

キャッシュはさまざまな場所に保存されています。
ブラウザに保存されたキャッシュは、そのブラウザのキャッシュを削除することで対応可能です。
クッキー同様、ブラウザごとにさまざまな削除方法があります。

あるいはF5キーを押して更新すると、ブラウザキャッシュも削除されて更新されます。
また、Windowsパソコンであれば、Ctrl+Shift+Rを同時押しすると、ブラウザのキャッシュを削除して更新することが可能です。
他方、キャッシュはシステムが蓄積していることもあり、その場合はキャッシュのファイルを削除する必要があります。

キャッシュとクッキー(Cookie)およびセッションとの違い

これまで見てきたクッキーやセッションとキャッシュの違いは何でしょうか?
キャッシュとクッキーおよびセッションとの大きな違いは、キャッシュが表示の高速化のために情報を保存しているのに対して、クッキーやセッションはユーザーの情報を保存していることです。
キャッシュ、クッキー、セッション、各々ユーザーに対してよりよいサポートをするために取得しているデータには変わりはありませんが、キャッシュは表示速度を上げることでユーザーを助け、クッキー・セッションはユーザーの情報・行動を覚えておくことで、機能のサポートをしてくれています。