【PHP】送ったリクエストの値を保持する方法
HTTPは、リクエストの前後で状態を保持しない、ステートレスなプロトコルです。
前回のリクエストの内容などは、知ることが基本的にはできません。
しかし、前後のリクエスト内容を知りたいことはシステム開発では多々あります。
そのような場合に、送ったリクエストの値を保持する方法を紹介します。
送ったリクエストの値を保持する方法
送ったリクエストの値を保持する方法は、主に4種類の方法があります。
- ブラウザに保存する(local strage)
- ブラウザに保存する(Cookie)
- サーバのSESSIONに保存する
- データベースに保存する
ローカルストレージに保存する方法
ローカルストレージに保存する方法は、【JavaScritpt】ブラウザ保存領域にデータを格納するlocalStorageの使い方を参考にしてみてください。
ブラウザに保存する(Cookie)
Cookie(クッキー)の場合は、ブラウザに値を保持します。
流れは以下の通りです。
- PCなどからサーバーにリクエストを投げます。
- サーバーでCookieに値をセットします。
- サーバーから返却する際に、HTTPのHeader部分にのせて、クライアント側、つまりブラウザ側に返却します。
- ブラウザは、その値をCookieとして保持することができます。
それの繰り返しで、次にPCなどからリクエストがあったら、そのCookieをサーバーで確認して、
値を加工したりして、返却します。
Cookie(クッキー)の使い方は、【PHP】Cookie(クッキー)の使い方を参照してみてください。
サーバのSESSIONに保存する
SESSION(セッション)の場合、値を保持するのはサーバー側になります。
- PCなどからサーバーにリクエストを投げます。
- サーバーでCookieに対して、セッションIDをセットします。Session_id:
- そのセッションIDをキーにして、サーバー上にファイルを作成してデータを保持します。
- Cookieに付与したセッションIDは、ブラウザに返却されます。
- ブラウザのCookieとして保持されます。
一般的にはサーバー上にファイルを作成して値を保持しますが、データベースに値を保持することも可能です。
一度ブラウザでCookieを保持したら、次からはリクエストのときにHeaderにCookieが自動的に付与されてサーバーと連携されます。
サーバーは、そのセッションIDをキーにして、値をとってくることができます。
SESSION(セッション)の使い方は、【PHP】SESSION(セッション)の使い方を参照してみてください。
データベースに保存する
- PCなどからサーバーにリクエストを投げます。
- 値がすべてデータベースに格納されます。
- その値をサーバーが受け取って、ブラウザ側に返却します。
inputタグのname属性などを使ってaというキーにして、サーバー側にパラメータとして送ったら、
データベース上にaというキーで値をセットしてデータを保持します。
その値をサーバーが受け取って、ブラウザ側に返却します。
2回目も同様で、設定したキーを元に、データベース上の値を取得できます。