4D Webにはキャッシュがあり、スタティックページ, GIF, JPEG (<128 kb) そしてスタイルシート (.css files) などがリクエストされると、メモリにロードされます。
キャッシュの利用は、スタティックページの送信時にWebサーバのパフォーマンスを劇的に向上します。
キャッシュはすべてのWebプロセスで共有されます。データベース設定でキャッシュのサイズを設定できます。新規作成されたデータベースではデフォルトではスタティックページのキャッシュは有効になっています。有効にするには、4D Webキャッシュを使用する オプションをチェックします。
ページキャッシュサイズ エリアでキャッシュのサイズを変更できます。この設定はスタティックページのサイズや数、およびホストマシンで利用可能なリソースによります。
注: Webデータベースを利用する間、WEB GET STATISTICS コマンドを使用してキャッシュのパフォーマンスを検証できます。例えばキャッシュ利用率が100%,に近い場合、キャッシュに割り当てたメモリ量を増やすことを考慮します。 /4DSTATS と /4DHTMLSTATS URLも、キャッシュの状態を知るために使用できます。Webサイトに関する情報 を参照してください。
キャッシュが有効になっているとき、4D Webサーバはブラウザからリクエストされたページをまずキャッシュから探します。ページが見つかると、即座にそれを送信します。見つからなければ、4Dはディスクからページをロードし、それをキャッシュに置きます。 キャッシュがいっぱいで、新しいページをキャッシュに置く必要がある場合、4Dは最も使われていないページの中から、もっとも古いページをアンロードします。
いつでもページやイメージをキャッシュからクリアできます (例えばスタティックページを更新し、キャッシュにそれをリロードさせたい場合)。
これを行うには、キャッシュクリア ボタンをクリックします。キャッシュは即座にクリアされます。
注: 特殊なURL を使用することもできます。
このエリアではWeb サーバーがどのようにユーザーセッションとそれに関連するプロセスを管理するかを設定することができます。ただし旧式セッション は、4D v18 R6 以前のバージョンで作成されたデータベース/プロジェクトにおいて互換性のためにのみ利用可能であるという点に注意してください。
このオプションを選択すると(推奨されています)、ユーザーセッションはSession オブジェクトを通して管理されます。
他の設定はありません。スケーラブルセッションでは以下のような特徴があります:
スケーラブルセッションの詳細は、developer.4d.com のユーザーセッションページ に記載されています。
このオプションが選択されている場合、Web サーバーはユーザーセッションに対して何の特定のサポートも提供しません。Web クライアントからの連続したリクエストはどれも常に独立しており、サーバー上ではコンテキストは維持されません。
このモードでは、以下の追加のWeb サーバー設定を設定することができます:
互換性に関する注意: このオプションは4D v18 R6 以前のバージョンの4D で作成されたデータベース/プロジェクトでのみ利用可能です。
このオプションは4D HTTP サーバーの旧式ユーザーセッションの管理を有効化します。この機構はWebセッション管理(旧式) の章に詳細な説明があります。
このモードでは、以下の追加のWeb サーバー設定を設定することができます:
一時的なコンテキストを再利用する (4Dリモートモード) のオプションが自動的にチェックされます(そしてロックされます)。
このオプションは、サーバー上で同時に開くことのできるすべてのWebプロセスの最大同時接続数を設定します(標準Webプロセス、またはプールされたプロセスなどすべて)。このパラメターは、異常な数のリクエストによる4D Webサーバの飽和状態を避けるために使用します。
デフォルトでこの値は100です。10から32000の値を設定できます。
最大Web同時接続数 (マイナス1) に達すると、4Dは新しいプロセスを作成せず、“Server unavailable” (ステータス HTTP 503 - Service Unavailable) を返信します。
理論上は、Webプロセスの最大数は以下の式で求められます: 利用可能なメモリ÷Webプロセススタックサイズ 他のソリューションはランタイムエクスプローラでWebプロセスを監視することです。Webプロセスの現在数と、Webサーバが実行されてからの最大数が示されます。
(*) 4DがWebプロセスに割り当てるスタックサイズは、約512KBとなっています(これらは概算値であり、コンテキストによって変動することがあります)。
前のWebリクエストを処理するために作成されたWebプロセスを再利用することによって、4DリモートモードのWebサーバの動作を最適化できます。実 際、4DリモートモードのWebサーバはそれぞれのWebリクエストを処理するために専用のWebプロセスを必要とします。必要であれば、このプロセスは 4D Serverマシンに接続してデータやデータベースエンジンにアクセスします。そしてプロセス独自の変数やセレクションを使用してコンテキストを作成しま す。リクエストの処理が終了すると、このプロセスは廃棄されます。一時的なコンテキストを再利用する オプションがチェックされていると、4Dは4Dリモートモード上で作成された固有のWebプロセスを保守し、その後のリクエストで再利用します。プロセスの作成処理が省略されるため、Webサーバのパフォーマンスが向上します。 他 方このオプションを使用する場合、不正な結果が返されることを避けるために、4Dメソッド内で使用される変数をシステマチックに初期化するようにしてくだ さい。同様に、以前のリクエストで使用されたカレントセレクションやカレントレコードをアンロードする必要があります。
サーバー上で、活動していないWebプロセスを閉じるための最大タイムアウト時間を設定できます。
コンパイル済みアプリケーションにおいてプリエンゲィブWebプロセスを有効化します。プリエンティブプロセスを使用 が選択されているとき、Web関連のコード(4D タグとWebデータベースメソッドを含む)は、コンパイル時にプリエンティブな実行が可能かどうかが評価されます。詳細な情報については、プリエンプティブWebプロセスの使用 を参照して下さい。
注: このオプションはWeb サービスプロセス(サーバーあるいはクライアント)には適用されません。プリエンプティブモードはWeb サービスプロセスではメソッドレベルでサポートされます。公開されているSOAP サーバーメソッド(4Dで Web サービスを公開する 参照)あるいはプロキシクライアントメソッド(4Dから Web サービスへサブスクライブする 参照)においては、"プリエンプティブプロセスで実行可能"プロパティにチェックを入れて、メソッドがコンパイラでスレッドセーフと認定されるようにしてください。
Web サーバーに対して適用したい認証システムを設定します。この認証は、ユーザー名とパスワードを含むあらゆる情報を、どのように収集して処理するかを決定します。
注意:
ここで変更した設定を有効化するためには、Web サーバーを再起動する必要があります。 これらのパラメーターの詳細については、接続セキュリティ の章に詳細があります。
Web サーバーからは何の認証も提供されません。認証は自分のコードで行う必要があります。このオプションが選択された場合、以下のような点に注意する必要があります:
BASIC モードの標準の認証です。ユーザーが入力したユーザー名とパスワードは暗号化されないままHTTP リクエスト内で送信されます。この設定は情報が第三者によって傍受され使用される可能性もあることから、総合的なシステムのセキュリティは保障されません(https 接続が推奨されています)。
ユーザーがサーバーに接続すると、ダイアログボックスが現れ、ユーザーはそこにユーザー名とパスワードを入力することができます。これら2つの値はその他の接続パラメーター(IPアドレス、ポート番号、URL、など)とともにOn Web Authenticationデータベースメソッド に送られるので、それをメソッド内で処理することができます。
このモードでは4D パスワードを含む オプションへのアクセスを提供します。これを使用すると、あなた独自のパスワードシステムに加えて(あるいはそれの代わりに)、(4D で定義されているのと同じように)4D のデータベースパスワードシステムを使用することができます。
注: 4D クライアントのWeb サーバーでは、4D クライアントマシンで公開された全てのサイトは同じユーザーテーブルを共有するという点に注意してください。ユーザー名/パスワードの評価は4D Server アプリケーションによって行われます。
この認証情報はハッシュと呼ばれる不可逆なプロセスで処理され、これによって情報が第三者に解読されることはありません。
BASIC モード同様、ユーザーはユーザー名とパスワードを入力する必要があります。これらの2つの値は暗号化されて他の接続パラメーターとともにOn Web Authenticationデータベースメソッド に送られます。WEB Validate digest コマンドを使用してユーザーを認証する必要があります。
事前に4Dパスワードテーブルに登録したユーザーを、“一般Webユーザー”として定義できます。この場合サーバーに接続するブラウザーは、それぞれこの一般ユーザーに割り当てられたアクセス認証や制限を使用できます。これによりデータベースの異なる部分へのブラウザーによるアクセスを簡単にコントロールできます。
注: ブラウザーからメソッドやフォームなどアプリケーションの様々なパーツへのアクセスを制限することを可能にするこのオプションと、パスワードシステムとOn Web Authenticationデータベースメソッド で管理するWebサーバー接続コントロールシステムとを、混同しないでください。
一般Webユーザーを定義するには:
デザインモードでツールボックスのユーザーエディターを開き、最低1人のユーザーを作成する。ユーザーにパスワードを設定することもできます。 他の4Dエディターを使用して、このユーザーに必要なアクセス認証あるいは制限を設定します。 データベース設定ダイアログで、Web テーマのオプション (I) ページを開く。 “Webパスワード”エリアに一般Webユーザー ドロップダウンリストがあります。デフォルトで一般WebユーザーはDesignerであり、ブラウザーはデータベース全体にフルアクセスがあります。 ドロップダウンリストからユーザーを選択し、ダイアログを受け入れます。 データベースへの接続が認証されたすべてのWebブラウザーは、一般Webユーザーに割り当てられたアクセス認証と制限を使用します (BASICモードと“4Dパスワードを含む”オプションがチェックされ、接続したユーザーが4Dパスワードテーブルに存在しない場合を除く、以下参照)。
"BASIC認証のパスワード"は一般Webユーザーがどのように動作するかには影響を与えません。このオプションのステータスにかかわらず、データベースに接続が許可されたすべてのWebブラウザーに、“一般Webユーザー”に割り当てられたアクセス認証と制限が適用されます。
しかし"4Dパスワードを含む"オプションが選択されていると、2つの可能性が発生します:
ユーザー名とパスワードが4Dパスワードテーブルに存在しない場合。この場合接続がOn Web Authenticationデータベースメソッド で受け入れられると、一般Webユーザーのアクセス権がブラウザに適用されます。 ユーザー名とパスワードが4Dパスワードテーブルに存在する場合、“一般Webユーザー”は無視され、ユーザーは固有のアクセス権で接続します。