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/4DCACHECLEAR を使用することもできます。
サーバー上で、活動していないWebプロセスを閉じるための最大タイムアウト時間を設定できます。
このオプションは、サーバー上で同時に開くことのできるすべてのWebプロセスの最大同時接続数を設定します(標準Webプロセス、またはプールされたプロセスなどすべて)。このパラメターは、異常な数のリクエストによる4D Webサーバの飽和状態を避けるために使用します。
デフォルトでこの値は100です。10から32000の値を設定できます。
最大Web同時接続数 (マイナス1) に達すると、4Dは新しいプロセスを作成せず、“Server unavailable” (ステータス HTTP 503 - Service Unavailable) を返信します。
理論上は、Webプロセスの最大数は以下の式で求められます: 利用可能なメモリ÷Webプロセススタックサイズ 他のソリューションはランタイムエクスプローラでWebプロセスを監視することです。Webプロセスの現在数と、Webサーバが実行されてからの最大数が示されます。
(*) 4DがWebプロセスに割り当てるスタックサイズは、約512KBとなっています(これらは概算値であり、コンテキストによって変動することがあります)。
4D HTTPサーバーによるユーザーセッションの自動管理内部メカニズムを有効にしたり無効にしたりします。このメカニズムについてはWebセッション管理 で説明しています。
4D v13以降に作成されたデータベースではデフォルトでこのメカニズムが有効になっています。他方互換性のため、v12以前のバージョンから変換されたデータベースでは無効になっています。この機能を利用するためには明示的に有効にしなければなりません。
このオプションが選択されていると、"一時的なコンテキストを再利用する"オプションも自動で選択され、ロックされます。
前のWebリクエストを処理するために作成されたWebプロセスを再利用することによって、4DリモートモードのWebサーバの動作を最適化できます。実 際、4DリモートモードのWebサーバはそれぞれのWebリクエストを処理するために専用のWebプロセスを必要とします。必要であれば、このプロセスは 4D Serverマシンに接続してデータやデータベースエンジンにアクセスします。そしてプロセス独自の変数やセレクションを使用してコンテキストを作成しま す。リクエストの処理が終了すると、このプロセスは廃棄されます。一時的なコンテキストを再利用する オプションがチェックされていると、4Dは4Dリモートモード上で作成された固有のWebプロセスを保守し、その後のリクエストで再利用します。プロセスの作成処理が省略されるため、Webサーバのパフォーマンスが向上します。 他 方このオプションを使用する場合、不正な結果が返されることを避けるために、4Dメソッド内で使用される変数をシステマチックに初期化するようにしてくだ さい。同様に、以前のリクエストで使用されたカレントセレクションやカレントレコードをアンロードする必要があります。
コンパイル済みアプリケーションにおいてプリエンゲィブWebプロセスを有効化します。プリエンティブプロセスを使用 が選択されているとき、Web関連のコード(4D タグとWebデータベースメソッドを含む)は、コンパイル時にプリエンティブな実行が可能かどうかが評価されます。詳細な情報については、プリエンプティブWebプロセスの使用 を参照して下さい。
注: このオプションはWeb サービスプロセス(サーバーあるいはクライアント)には適用されません。プリエンプティブモードはWeb サービスプロセスではメソッドレベルでサポートされます。公開されているSOAP サーバーメソッド(4Dで Web サービスを公開する 参照)あるいはプロキシクライアントメソッド(4Dから Web サービスへサブスクライブする 参照)においては、"プリエンプティブプロセスで実行可能"プロパティにチェックを入れて、メソッドがコンパイラでスレッドセーフと認定されるようにしてください。
データベース設定で、Webサーバに適用するアクセスkんトロールシステムを設定できま す。2つの認証モード、BASICモードとDIGESTモードが提供されています。認証モードはユーザ名とパスワードに関する情報の取得と処理方法に関連します。
BASICモードでは、ユーザが入力したユーザ名とパスワードは暗号化されずにHTTPリクエストに含められて送信されます。この場合情報は第三者に盗聴・使用される可能性があるので、トータルなセキュリティは確保されません。 DIGESTモードはより高いセキュリティレベルを提供します。認証情報は複合が困難な一方向ハッシュを使用して処理されます。 ユーザにとり、いずれの認証モードを使用するかは透過的です。
Notes: Digest認証 はHTTP1.1の機能で、すべてのブラウザでサポートされているわけではありません。Digestモードが有効な時に、この機能をサポートしないブラウザがWebサーバにリクエストを送信する と、サーバはリクエストを拒否し、エラーメッセージをブラウザに返します。
"Webパスワード"エリアで、3つのオプションから選択できます:
パスワードなし : Webサーバへの接続に認証を実行しない。この場合: BASIC認証のパスワード : BASICモードの標準認証です。ユーザがサーバに接続するとダイアログボックスがブラウザ上に表示され、ユーザ名とパスワードの入力を求められます。これら2つの値は他の接続パラメタ (IPアドレス、URI) とともにOn Web Authenticationデータベースメソッド に送信され、開発者はそれを処理できます。 このモードを有効にすると、4Dパスワードを含む オプションが有効になり、カスタムパスワードシステムの代わりに、あるいは追加として使用できます。 DIGEST認証のパスワード : DIGESTモードの認証。BASICモードのように、ユーザは接続時にユーザ名とパスワードを入力します。これら2つの値は暗号化されて、他の接続パラメタとともにOn Web Authenticationデータベースメソッド に送信されます。この場合WEB Validate digest コマンドを使用してユーザを認証しなければなりません。 注:
これらの設定を変更した場合は、Webサーバを再起動しなければなりません。 4DリモートモードのWebサーバでは、すべての4Dリモートモードのマシンが同じユーザテーブルを共有することを覚えておいてください。ユーザ/パスワードの検証は4D Serverアプリケーションで行われます。
BASICモードを使用する場合、4D Webサーバーへの接続をフィルターするシステムは、2つのパラメーターの組み合わせに基づきます:
組み合わせは以下のとおり:
“BASIC認証のパスワード”が選択され、“4Dパスワードを含む”が選択されていない場合:
注: ブラウザーから送信されたユーザー名が空の文字列で、かつOn Web Authenticationデータベースメソッド が存在しない場合、ブラウザーにパスワードダイアログボックスが送信されます。
“BASIC認証のパスワード” と “4Dパスワードを含む” が選択されている場合:
ブラウザーから送信されたユーザー名が4Dのユーザーテーブルに存在し、パスワードが正しい場合、接続は受け入れられます。パスワードが正しくなければ接続は拒否されます。 ブラウザーから送信されたユーザー名が4Dに存在しない場合、2つの可能性があります:
BASICモードと異なり、DIGESTモードは標準の4Dパスワードシステムと互換がありません。4DパスワードをDigest Web認証に使用できません。このモードが選択されると“4Dパスワードを含む”オプションは選択不可となります。Webユーザーの認証は、(テーブル等を使用した) カスタマイズされた方法で管理しなければなりません。 DIGESTモードが有効の時、On Web Authenticationデータベースメソッド の$6 引数 (パスワード) は常に空の文字列が渡されます。実際このモードを使用するとき、この情報はネットワークからクリアテキストでは渡されません。この場合接続リクエストはWEB Validate digest コマンドを使用して検証しなければなりません。
4D Webサーバーのアクセスシステムの処理を以下に図示します:
事前に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ユーザー”は無視され、ユーザーは固有のアクセス権で接続します。