4D v14.3Webセッション管理 |
||
|
4D v14.3
Webセッション管理
Webセッション管理
4D Webサーバーはユーザーセッションを容易に管理するメカニズムを提供します。この自動メカニズムを使用して、後のリクエストでWebクライアントが同じコンテキスト (セレクションや変数の値) を再利用できます。 このメカニズムでは4Dが自動で設定するプライベートな"4DSID"という名前のcookieを使用します (cookie名は変更できます)。Webクライアントからリクエストを受信するたびに4Dは4DSID cookieが送信されてきたか、またその値をチェックします:
アプリケーションで4Dの自動Webセッション管理を使用するには、その機能が有効化されていなければなりません。 4D v13以降で作成されたデータベースでは、このメカニズムがデフォルトで有効になっています。4D v12以前から変換されたデータベースの場合、互換性のためこの機能は無効になっています。この新機能を使用するためには明示的に有効化しなければなりません。 自動セッション管理を有効化する方法は2つあります:
いずれの場合も設定はローカルマシンに有効です。つまり4D Serverとリモートモードの4Dでは異なる設定を行うことができます。 cookieの有効期限およびセッションに割り当てられたWebプロセスのタイムアウトはデフォルトで480分 (8時間) です。これらの有効期限やタイムアウトはWEB SET OPTIONコマンドを使用して個別に変更できます。cookieの有効期限は Web Inactive session timeout オプション、Webプロセスのタイムアウトは Web Inactive process timeout オプションで設定します。例えばブラウザー側でショッピングカート用のcookie有効期限を24時間有効にするとしても、最適化の目的でWebプロセス をそんなに長く保持したくないと思うでしょう。この場合、Webプロセスのタイムアウトをもっと短く設定することができます。Webプロセスがタイムアウ トするときはOn Web Session Suspend データベースメソッドが呼び出され、プロセスが破棄される前にセレクションや変数の値などを後で利用するために退避させることができます。次回Webク ライアントが (24時間以内に) 接続してきたときは、同じcookieがサーバーに送信されるので、そのcookie値をキーとして前回のセッションのコンテキスト (変数値やセレクションの状態など) を On Web Connectionデータベースメソッド 内に読み込むことができます (後述の例題参照)。 必要であれば、 WEB CLOSE SESSIONコマンドを使用していつでもcookieを強制的に失効させ、セッションを閉じることができます。 4Dはセッションを管理するWebプロセス数が上限値に達した場合、もっとも古いプロセスを破棄します。この上限値はデフォルトで100であり、WEB SET OPTIONコマンドの Web Max sessions オプションで変更できます。 この例題ではOn Web ConnectionデータベースメソッドやOn Web Session Suspend データベースメソッドを使用してセッションを管理する方法を示します。 以下はOn Web Connectionデータベースメソッドのコードです: // On Web Connection (または On Web Authentication) 以下はOn Web Session Suspend データベースメソッドのコードです : // On Web Session Suspend 4Dの自動セッション管理メカニズムはcookieを利用しています。Webクライアントがcookieをサポートしない、あるいは拒否している場合、4D HTTPサーバーはセッションを保守できません。この場合各リクエストは新規接続として扱われ、各接続毎に Compiler_Web メソッドが実行されます。 4D HTTPサーバーはセッションを開始したIPアドレスを記憶します。異なるIPアドレスから既存のセッションにアクセスされた場合、HTTP 400エラーがクライアントに返されます。 |
プロパティ
プロダクト: 4D 参照
On Web Session Suspend データベースメソッド ARTICLE USAGE
ランゲージリファレンス ( 4D v14 R2) |