SMS認証に関する機能実装時に、セッションとCookieについて少し勉強したので備忘録としてメモ。
Cookieとは
- CookieとはWebサーバとクライアント間でユーザーの状態などを維持・管理するためのHTTPの仕組み。
HTTPは本来、“状態”を持たないプロトコルであり、セッションという概念を持っていない。
そのため、例えば同じGET要求に対して(同じURLの表示要求に対して)、ログイン前とログイン後で表示する内容を変えたいとしても困難である。
このような問題を解決するために導入されたのがCookieの機能。
最初にWebサーバ側からクライアントへ小さな“データ片”(これをコンピュータの分野では「クッキー」と呼ぶ)を渡し、以後のやりとりでは必ずそのデータをクライアント側からサーバ側へ戻してもらうようにする。
かつ、それにはクライアントやユーザーごとにユニークなデータを含めるようにする。
セッションとは
- セッションとは接続を確立してから切断するまでの一連の通信のこと。
セッションに保存された内容は、Webブラウザを閉じるまでWebサーバーにファイルとして保存されており、リンクなどを張ってページを移動しても内容を保持することができる。
ユーザーのWebブラウザにはセッションID(無作為な英数字)がCookieに記録される。
セッションIDとWebサーバー上のファイルが照合されてセッション内容を取り出す。
自分なりに解釈してまとめると、セッションはユーザーの通信情報を保持しており、webブラウザを閉じるまでWebサーバーにファイルとして保存。セッションIDはユーザーのWebブラウザでCookieに記録されており、セッションIDとWebサーバー上のファイルが照合されてセッション内容を取り出す。
参考URL
https://qiita.com/hththt/items/07136ad74127999df271
https://www.atmarkit.co.jp/ait/articles/1704/20/news024.html