セッション

セッション (IETF Cookie)

[1] HTTP要求応答はそもそも1組ずつそれぞれ独立したものですが、 複数の要求応答の組の間にわたって状態 (state) を持たせたいことがあります。 その要求応答の集合によって構成される文脈 (context) セッション (session) といいます。

[8] 本項は過去の HTTP 仕様に関するものです。現状とは異なることがあります。

仕様書

[4]

This document describes a way to create stateful sessions with HTTP requests and responses. Currently, HTTP servers respond to each client request without relating that request to previous or subsequent requests; the technique the state management mechanism allows clients and servers that wish to exchange state information to place HTTP requests and responses within a larger context, which we term a "session". This context might be used to create, for example, a "shopping cart", in which user selections can be aggregated before purchase, or a magazine browsing system, in which a user's previous reading affects which offerings are presented.

この文書は HTTP要求応答状態を持ったセッション (stateful session) を作る方法を説明します。 現在、HTTP クライアント要求それぞれに対して、 以前や以後の要求と関連付けすることなく応答しています。 この技術この状態管理機構によって、 状態 (state) 情報を交換したいと思うクライアントは、 HTTP要求応答の群をより大きな文脈 (context) に配置できるようになります。 この文脈をセッション (session) と呼びます。 この文脈は例えば「買い物籠」といって利用者が選択したものを購入前に集めておくために使うことができますし、 雑誌閲覧システムで利用者の閲覧履歴に基づきどの雑誌を候補として提示するかを決めるために使うこともできます。

There are, of course, many different potential contexts and thus many different potential types of session. The designers' paradigm for sessions created by the exchange of cookies has these key attributes:

  1. Each session has a beginning and an end.
  2. Each session is relatively short-lived.
  3. Either the user agent or the origin server may terminate a session.
  4. The session is implicit in the exchange of state information.

もちろん文脈となり得るものは色々ありますし、ひいてはセッションの種類も色々となるでしょう。 Cookie の交換によって作られるセッションの設計者のパラダイムにはいくつか鍵となる属性があります。

  1. セッションには始まりと終わりがあります。
  2. セッションは比較的短期間で終わります。
  3. 利用者エージェント起源鯖のどちらがセッションを終了させても構いません。
  4. セッション状態情報の交換の中に暗示的に存在します。

Neither clients nor servers are required to support cookies. A server MAY refuse to provide content to a client that does not return the cookies it sends.

クライアントのいずれも、Cookie への対応は必須ではありません。 は、自身が送信した Cookie を返さないクライアント内容を提供することを拒んでも構いません

メモ

[6] RFC 2109RFC 2965Cookie を「セッション」の概念に基づき説明しています。 元々の Netscape Cookie の説明でも「セッション」という言葉は出てきてはいるのですが、 IETFRFC の仕様ではもっと色濃く「セッション」ベースになっています。

[7] しかし「セッション」の開始や終了といった概念に基づく説明は、 送られてきたら送り返すという実際の Cookie の仕組みとちょっと距離があるように思えます。