セッション (コンピュータ)
ウィキペディア フリーな encyclopedia
計算機科学における特定のネットワーク接続において、セッション(英: session)とは、2台以上の通信機器間の、またはコンピュータとユーザ間 (ログインセッション(英語版)参照) の半永久的な双方向情報交換 (ダイアログ (dialogue)、会話、または会議とも) のことである。セッションはある時点で作成または確立され、その後のある時点で破棄される。確立した通信セッションでは、各方向に1通以上のメッセージを送信することができる。セッションは概してステートフル(英語版)、つまり通信を可能にするために最低1つの通信内容部にセッション履歴情報を保存する必要があるが、これは通信がレスポンスと独立のリクエストで構成されるステートレス(英語版)通信とは正反対である。
セッションの確立は、コネクション指向通信(英語版)を行う際の基本要件である。また、セッションはコネクションレス型通信モードで送信する際の基本ステップである。ただし、一方向性送信ではセッションは定義されない。
OSI参照モデルのアプリケーション層、セッション層、またはトランスポート層のプロトコルおよびサービスの一部として、通信トランスポートが実装される場合がある。
- アプリケーション層の例:
- セッション層の例:
- トランスポート層の例:
フォーマルなセッション層を実装しない場合 (UDP等)、あるいはアプリケーション層のセッション持続期間が非常に短い場合 (HTTP等)、セッションは交換されるデータ内で定義された方法を用いて上位のプログラムによって維持される。たとえば、ブラウザとリモートホスト間のHTTPデータ交換では、一意のセッションID、ユーザの設定情報、または権限レベル等の状態を識別するためのHTTPクッキーが含まれる場合がある。
HTTP/1.0では、1回のWeb/HTTPセッションにつきリクエストとレスポンスを1つだけやり取りすることが期待されていた。これはHTTP/1.1プロトコルバージョンでCGIが完成したことで改善され、ウェブセッションの維持とHTTPクッキーおよびファイルアップロードへの対応が容易になった。
大半のクライアントサーバセッションは、トランスポート層において1セッションにつき1コネクションで維持される。ただし、Web/HTTPの各トランザクションフェーズで異なるコネクションが作成される。フェーズ間でセッションが途切れないようにするには、セッションIDが必要になる。セッションIDは動的ウェブページ(英語版)の<A HREF>または<FORM>リンク内に埋め込み、CGIに返せるようにする。するとCGIは、そのセッションIDを使うことでトランザクションフェーズ間でセッションが続いたままにできる。1フェーズ1コネクションの利点として、低帯域 (モデム) 接続でもうまく機能する点が挙げられる。