🗂

クッキーとセッション 簡単に説明

2022/02/06に公開

はじめに

クッキーとセッションについて、簡単に記載します。

そもそもなぜクッキーとセッションが必要か

クッキー、セッションという文言の意味を知るよりも、
なぜこの機能が必要なのか、を先に考えた方が、理解しやすいと思うため、まず記述します。

手間を省く

例えば、gmailにアクセスしたときに、毎回ログインせずに自身のメールフォルダを見ることができるかと思います。基本的にはステートレスなため、毎回ログインしないといけないのですが、クッキー、セッションの仕組みによりそれが可能になっているのです。毎回ログインするのは、ユーザーにとっても手間ですよね。
ログイン以外にも、楽天やアマゾンの買い物カゴや、購入履歴、レコメンド商品なども、クッキー、セッションによって可能になっています。

そもそも現在の通信はステートレス

なぜそのような技術が必要なのか。それは、我々がインターネットから情報を取得する際に使用しているプロトコル(大体HTTP)が、通信情報を保持しない仕様になっているからです。ユーザーの情報を全て保持していた場合、情報が拭き取られたり、悪用されたりする機会が増えます。
このようなリスクがあるのですが、クッキー、セッションによって、セキュリティに配慮しながら、ユーザーの使いやすさを求めることができたと言えそうです。

クッキーとは

ブラウザが保持する、ユーザー情報のファイルです。
ただし、作成されるのはサーバー側であり、情報をリクエストして、レスポンスとして返ってくる際に付与され、ブラウザに保存されます。

現実世界に無理矢理例えるなら、ライブハウスに入るときに、手の甲に押されるスタンプのようなもの。ライブハウス(サーバー)側が、スタンプ(cookie)を付与して、入場者(ブラウザ)が保持する。一度ライブハウスを出て、今一度入るときにはそのスタンプを再度見せれば、面倒なやり取りなくすんなり入れます。もしも、スタンプがなかったら、最初から入場の手続きをしなければなりません。スタンプ(クッキ−)がないと面倒ですね。

セッションとは

接続を確立してから切断するまでの一連の通信のことをセッションと言います。
また、一連のセッションにはセッションIDというものが割り当てられます。
そのセッションIDをサーバーが保持することにより、アクセスされたユーザーの情報と照らし合わせ、どのユーザーかを判別することができます。それにより、リクエストをしたユーザーに適切なレスポンスを返すことが可能です。

Discussion