質問: PHPのセッションでわからないことがあります。 例えば、ユーザーが商品検索すると関連商品の検索結果一覧が出るサイトがあり、 検索結果の一つをクリックして詳細ページへ飛ぶとします。 詳細ページで戻るを押せば、検索結果一覧ページへと戻ります。 これは具体的にセッションをどのように使っているのでしょうか? 仮に検索ページをsearch.php、結果一覧ページをresult.php、詳細ページをdetail.php とすると、detail.phpで ``` 戻る ``` としてもサーバーは同じ人なのか判別できずに、前の検索結果一覧は表示しませんよね? 値をセッション変数に入れて、ページ遷移しても値を共有できる(?)のは理解できるのですが、戻るボタンのようにページ全体ではよくわかりません。 具体的な仕組みを教えてください。
回答: 戻るボタンで戻った際に元のページが再現されるのは、セッションの機能ではなく、ブラウザのキャッシュ機能によるものです。 ただし、戻った上でリロードをすると、ブラウザのキャッシュではなく、リクエストが再びサーバーに送られてその結果が表示されます。その場合も、ブラウザからのリクエストはブラウザが覚えている内容が送信されます。リクエストが同じなので、レスポンス(表示)も通常は前と同じものが表示されるというわけです。このあたりは、セッションを使っていようが、他の方法を使っていようが、変わりません。