セッションとクッキーについて
まずHTTP通信について説明する。
HTTPとは、WEBページやページ内で必要なHTML,CSS,Javascript,画像などのファイルをWEBサーバーにリクエストするためのフォーマット。
しかしこのHTTPはステートレスと言って状態を持っていない。
つまり一回一回の通信が初めての通信となり、リクエストを送っているユーザーを認識することができないのだ。
これはセキュリティとしては優秀だが、サイトにログインする時に困る。
理由は、HTTPは状態を持たないという話をしたが、ログイン画面でパスワードを入力したとして、ログイン後の画面に行きたいのにHTTPがログインした人を忘れてしまうため、ログイン状態を保てなくなってしまう。
これを解決するためにセッションとクッキーがある。
その違いについて今から説明しようと思う。
クッキーについて。
クッキーは簡単にいうとサーバー側がクライアント側のコンピューターに情報をのせておくということだ。
あるサイトのログイン画面に行った時にサーバー側が、HTTPレスポンスに会員情報を載せておくことでクライアント側のコンピューターがその会員情報を保存しておき、ログイン後もその情報をHTTPリクエストに載せて通信することで、クライアントユーザーの区別がつきログインの状態を保っていられるということらしい。
デメリットとしては、会員の情報がクライアント側にあるのでクライアントのユーザーが改竄できるということ。それを解決するためにセッションという機能がある。
セッションとは。
簡単にいうとサーバー側に情報を保存しておくということ。
どういうことかというと、クライアントがログイン画面に来た時にセッションIDというものをHTTPレスポンスのヘッダーにのせて、クライアント側のコンピューターに保存しておく。そうすることで、クライアント側にはセッションIDしか情報がないため改竄できないし、情報はサーバー側にありログイン時にはセッションIDとデータベースの中のユーザーのIDを照合し会員であればログインできるという仕組み。