概要

HTTP には 「前のリクエストを覚えていない」 という性質がある (Stateless)。サーバーは届いたリクエストに 1 通ずつ返事するだけで、「さっきの人」と「今の人」が同じか デフォルトでは分からない。これだとログインも買い物カゴも成立しない。Web は後付けで 「リクエストをまたいで状態を保つ仕組み」 を発明した。それが Cookie と Session

Cookie は「サーバーが発行してブラウザに保管してもらう小さなメモ」。一度発行すると、ブラウザは同じサイトに行く度に そのメモを Cookie: ヘッダに乗せて自動で送り返してくる。これでサーバーは「あ、さっきの人だ」と認識できる。ただ Cookie にユーザー名やパスワードを直接書くのは危険。

そこで Session。「ブラウザに渡すのは識別子 (Session ID) だけ、本体のデータはサーバー側に保管」する仕組み。PHPSESSID という Cookie に長いランダム文字列が入り、これが 入場券の番号。サーバー側にはその番号に対応するロッカー ($_SESSION 配列) があり、本物のデータはそこに置く。次の章から session_start() で実際に動かす。

学習目標

ドリル

このチャプターにドリルはありません。 スライドを読み終わったら次の ch02-session-basic/ に進んでください。

理由: ここでは「なぜ Session / Cookie が必要なのか」「両者の役割分担」の 概念の絵 を頭に作るのが目的。手を動かすのは ch02 以降で行います。

ブラウザで体感してみる (任意)

任意の Web サイト (例: https://github.com) を開いて、Chrome の開発者ツール (F12) で:

  1. Application タブ → Cookies を開く → サイトが発行した Cookie 一覧が見える (_octo などの key が並ぶ)
  2. Network タブ を開いた状態でページをリロードすると、リクエストの Cookie: ヘッダにそれらの key が 自動で乗って送られている ことが分かる
  3. ログアウトボタンを押すと、sessionauth 系の Cookie が 消えるか書き換わる ことが見える

「Session でログインが保たれている」というのは、つまり Cookie に Session ID が乗って毎回送られている ということ。次のチャプター以降で、その仕組みを自分の PHP で書く。

この章を AI に聞く

  1. 「ch01 — Cookie / Session / Stateless HTTP の限界」のつまずきやすいポイントを、初学者向けに3つ教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

  2. 「ch01 — Cookie / Session / Stateless HTTP の限界」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    💬 ChatGPT 📘 Claude ✨ Gemini

  3. 「ch01 — Cookie / Session / Stateless HTTP の限界」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

🎉 受講お疲れさまでした!

ch01 — Cookie / Session / Stateless HTTP の限界」を読み終えました。
学んだことを誰かに教えると、もっと記憶に残ります。

X で共有 Hatena LINE