WEBサーバーとブラウザ間のセッション認証について


PHP初学者です。WEBサーバー(PHP)のセッション機能を使ったログイン処理について勉強しました。雰囲気だけ何となくわかってきたので、WEBサーバーとブラウザのやり取りを会話調でまとめてみました。
僕自身が、こんな雰囲気かなーって程度の理解なので、技術的には多分全然正確じゃないです。あくまで次のステップへ進むためのとっかかりととして、自分用メモとしてまとめてみました。ご了承ください。m(__)m

はじめての出会い

ブラウザ 「ログインが必要なこのサイトにアクセスしよう!サーバーさんはじめまして! login.php をくださいな、っと。」
サーバー 「 login.php ですねー。はい、コレでーす。(あっ、session_start って書いてあるな... ブラウザさん、セッションID持ってますかー?」
ブラウザ 「何それ?おいしいの?」
サーバー 「セッションID、お持ちじゃないみたいですねー。OK、じゃあコレ {00001234} があなたのセッションIDです。あなた自身の クッキー手帳 に控えておいてくださいね。それで、これから僕に話しかける時は、かならずセッションIDを最初に伝えてくださーい。」
ブラウザ 「わかりましたー!( クッキー手帳 にセッションIDを控える...っと。)」

ログイン処理

ブラウザ 「サーバーさん、私のセッションIDは {00001234} です。で、サービスにログインしたいのですが...ユーザーIDとパスワードはコレです。」
サーバー 「はーい。セッションIDが {00001234} の人ですね。。えーっと、ユーザーIDとパスワードは、、あってますねー。じゃあログイン許可しますねー。
(僕、ブラウザさんとのやり取りいちいち覚えられないからファイルに記録しとこう。えーっと...セッションID {00001234} のセッションファイルを作成!っと。そして、この人のユーザー名コレで、ログイン許可中ですよ...っと。)

会員専用ページを見たい

ブラウザ 「サーバーさん、私のセッションIDは {00001234} です。で、会員専用ページの mypage.php をくださいな。っと。)
サーバー 「はーい。セッションIDが {00001234} の人ですね。
(えーと、セッションファイルを探してみよう。。あっ、このセッションIDのセッションファイル発見!この人のユーザー名はコレで、さっきログイン許可したって書いてあるな。)
はい、これが mypage.php ですよー。」
ブラウザ 「サーバーさん、ありがとう」

ログアウト処理

ブラウザ 「サーバーさん、私のセッションIDは {00001234} です。で、そろそろログアウトしますねー。ポチッと」
サーバー 「はーい。セッションIDが {00001234} の人ですね。
(えーと、セッションファイルを探してみよう。。あっ、このセッションIDのセッションファイル発見!この人のユーザー名はコレで、さっきログイン許可したって書いてあるな。ログアウトしたいって言ってるから、もうこのセッションファイルいらないじゃん!削除しよっと!)
ブラウザさん、ログアウト処理しといたから logout.php にリダイレクトしといてねー!」
ブラウザ 「はーい、 logout.php を表示...っと。サーバーさんありがとー。またよろしくねー。」


参考させて頂いたリンク

最後に

  • 冒頭でも書きましたが、セッションIDのやり取りのタイミングとか、実際には上の描写は正確でないと思います。
  • セッションファイルの作成、削除など、サーバー側の処理の詳細はよく理解してませんので、雰囲気で書いてます。
  • そして当たり前ですが、ブラウザは「サーバーさんありがとう」とか言いません。フィクションです。
  • もし初学者の方で、この記事で雰囲気がつかめたという奇特な方がいらしたら、あとは Qiita やその他の記事で正確に学び直してください。
  • Qiita には本当に素晴らしい記事が沢山あって、皆様に感謝です。いつもありがとうございます。