HTTPセッション
クッキーを基盤として、セッションが機能します。 セッションにより、サーバーはクライアントを記憶し、 そのための情報を保持することが可能になります。
例えば、ウェブサイトの訪問者は オンラインストアのカートに商品を入れることができます。 そしてページを再読み込みした後でも、サーバーは クライアントを識別し、そのブラウザで 追加された商品を表示します。
これがどのように機能するのか、詳しく見ていきましょう。 ご存知の通り、HTTPプロトコルはステートレスであり、 サーバーはどのクライアントからのリクエストなのかを 区別することができません。したがって、この場合、 回避策が用いられます。
その本質は以下の通りです。
クライアントが初めてアクセスした際、サーバーは
ランダムでユニークな文字列を含むクッキーを設定します。
このクッキーはセッションクッキーと呼ばれ、
通常はsessidという名前を持ちます。
サーバーはまた、全てのセッションクッキーのリストを 自身で保持し、それに必要なデータを紐付けます。 例えば、ストアで選択された商品のリストなどです。
クライアントが次にアクセスする際、そのセッションクッキーを サーバーに送信し、サーバーはこのクッキーによって クライアントを識別し、当該クライアント用に サーバー上に保存されたデータを取得できるようになります。
HTTPプロトコルはリクエスト間でデータを保持しません。 それにもかかわらず、サーバーはユーザーを 区別することができます。これはどのように実装されているのでしょうか?