検索の絞り込みをした状態で、そのAに対して新規登録を行った後、一覧ページに戻る時に、その絞り込み状態のままにしてください。
という機能が今日のお題だった。
GETで送り返そうと思っていたのだが、
補足事項にsessionで保持させると良いかも。
と記載されていた。
sessionって一度設定するとリセットしないといけないことは知っていたけどいまいち分かっていなかったので調べてみた。
セッションとは
ユーザーがwebサイトにアクセスしている間の「状態」や「情報」を保持する仕組み。
ユーザーのログイン状態、ショッピングカートの内容を情報を維持できる。
初めてサーバーにアクセスするとサーバーはセッションIDを作成。
そのセッションIDはクッキーで保存されてリクエストでサーバーに送信される。
サーバーはこのIDを元に保存されたセッションデータを呼び出しユーザーの状態を管理する。
サーバー側に保存されるので改ざんリスクが低いのが特徴。
セッション操作の基本
保存
$_SESSION['username'] = 'taro';
取得
$username = $_SESSION['username'];
削除
unset($_SESSION['username']);
session_destroy();
セッションの他にもクッキー、あるいは昔、ローカルストレージを利用してくじ引きを作成したことがある。
ローカルストレージもデータを保存する仕組みだと覚えている。
どれもデータを保存するものだと思っているがこれを機に違いについても調べてみた。
3つの違い
クッキー
保存場所: ブラウザ(クライアント側)。
管理主体: ユーザーのブラウザが管理。
特徴: 小さいデータ(通常は4KB程度まで)の保存
保存期間:有効期限を設定できる。永続も可能。
ローカルストレージ
保存場所: ブラウザ内に保存されるクライアント側のストレージ。
管理主体: ユーザーのブラウザが管理。
特徴:
セッションストレージよりも容量が大きい。
数MB程度のデータを保存可能。
データは永続的に保存されるため、ブラウザを閉じても残る。
保存期間:明示的に削除されない限り無期限。ブラウザのキャッシュに残る。
セッション
保存場所: サーバー側でデータを保持。
管理主体: サーバーがデータを管理。ユーザーの識別はクッキーに保存されたセッションIDを利用。
特徴: サーバー側でデータが管理されるため、ユーザーがデータを直接改ざんするリスクが低い。
保存期間:ユーザー操作が続いている間は維持。一定時間操作がないとタイムアウト。時間設定可能。
利用シーン
セッションが適している場合:
例: ユーザー認証(ログイン状態の管理)、一時的なユーザー情報の保存。
理由: セキュリティ面で優位、サーバー側で管理するためユーザーが直接データにアクセスできない。
クッキーが適している場合:
例: ユーザーの設定情報、トラッキング情報、言語設定など、サーバー側でなくても良い小さな情報。
理由: サーバーとのやり取りで自動的に送受信され、ユーザーごとのカスタマイズが可能。
ローカルストレージが適している場合:
例: ユーザーの一時保存情報、オフライン時のデータキャッシュ、大量のクライアントサイドデータ。
理由: ブラウザに大容量のデータを保持でき、ページをまたいで情報を長期間保存することが可能。
ローカルストレージは長いフォームなどで途中でページを閉じてしまったときでも情報が保存される。
らしい。
昔、長いこと入力しているとログアウトされるので小まめに保存してくださいね。
と言われたことがあったが、これかが正体か。
cookieはお菓子の欠片が由来?
だと思っていたが全然違った。
Magic cookieという用語があるらしい。
プログラム間でやり取りされる小さなデータ片を表す技術用語。
ここから取られたらしい。