分かったつもりでわかってなかったシリーズ。
自信をもって説明できなかったので、自分なりに調べました。
・httpはステートレス
・ステートレスは、クライアント⇔サーバのやり取りをいちいち覚えていない
(例)
Aさんがお買いものサイトでカートに商品を入れる
↓
別の商品を探しに、サイト内をうろうろ
↓
その時点で、カートにいれた商品はなくなっている。(悲しい)
これは、「①カートに商品をいれた人」と「②商品を探している人」が
同一人物であると、サーバくんが判断できないため。
そこで、登場するのが「クッキー」という仕組み。
・ブラウザで操作した内容をクッキーに保存
・サーバからWebページ要求時に、クッキーの情報も一緒に送ることで
情報を引き継ぐことが可能になる。
(例)
Aさんがお買いものサイトでカートに商品を入れる
↓
別の商品を探しに、サイト内をうろうろ
(ブラウザの裏では、カートに入れた商品を持っているので安心)
↓
カートにいれた商品はそのまま残っている(嬉しいい)
ただし、ここで問題あり。
クッキーはブラウザに持つ情報なので、中身の改変ができてしまう・・・。
クッキーの保持期間によっては、ブラウザのクッキーの残りで悪いこともできてしまう・・・
(例えば、ログイン情報のIDとパスワードとか。残っているとまずいもの)
そのため、次に登場するのが「セッション管理」という仕組み。
・初回アクセス時に、サーバがクライアントにセッションIDを発行する。クッキーにセッションIDを保持してもらう。
・2回目以降のアクセス時にも、クッキーに設定されたセッションIDをサーバーに送る。
・サーバー側では、セッションIDでクライアントを判別可能。
・また、サーバー側でセッションIDにひもづけてデータを管理すれば、サーバーの内容なので変更不可能。(安全)
うーん。
文章に起こすと説明って難しいなぁ。