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は最も使われていないページの中から、もっとも古いページをアンロードします。
いつでもページやイメージをキャッシュからクリアできます (例えばスタティックページを更新し、キャッシュにそれをリロードさせたい場合)。
これを行うには、キャッシュクリア ボタンをクリックします。キャッシュは即座にクリアされます。
サーバー上で、活動していないWebプロセスを閉じるための最大タイムアウト時間を設定できます。
このオプションは、サーバー上で同時に開くことのできるすべてのWebプロセスの最大同時接続数を設定します(標準Webプロセス、またはプールされたプロセスなどすべて)。このパラメターは、異常な数のリクエストによる4D Webサーバの飽和状態を避けるために使用します。
デフォルトでこの値は32000です。10から32000の値を設定できます。
最大Web同時接続数 (マイナス1) に達すると、4Dは新しいプロセスを作成せず、“Server unavailable” (ステータス HTTP 503 - Service Unavailable) を返信します。
理論上は、Webプロセスの最大数は以下の式で求められます: 利用可能なメモリ/Webプロセススタックサイズ
他のソリューションはランタイムエクスプローラでWebプロセスを監視することです。Webプロセスの現在数と、Webサーバが実行されてからの最大数が示されます。
4D HTTPサーバーによるユーザーセッションの自動管理内部メカニズムを有効にしたり無効にしたりします。このメカニズムについてはWebセッション管理で説明しています。
4D v13以降に作成されたデータベースではデフォルトでこのメカニズムが有効になっています。他方互換性のため、v12以前のバージョンから変換されたデータベースでは無効になっています。この機能を利用するためには明示的に有効にしなければなりません。
このオプションが選択されていると、"一時的なコンテキストを再利用する"オプションも自動で選択され、ロックされます。
前のWebリクエストを処理するために作成されたWebプロセスを再利用することによって、4DリモートモードのWebサーバの動作を最適化できます。実 際、4DリモートモードのWebサーバはそれぞれのWebリクエストを処理するために専用のWebプロセスを必要とします。必要であれば、このプロセスは 4D Serverマシンに接続してデータやデータベースエンジンにアクセスします。そしてプロセス独自の変数やセレクションを使用してコンテキストを作成しま す。リクエストの処理が終了すると、このプロセスは廃棄されます。
一時的なコンテキストを再利用するオプションがチェックされていると、4Dは4Dリモートモード上で作成された固有のWebプロセスを保守し、その後のリクエストで再利用します。プロセスの作成処理が省略されるため、Webサーバのパフォーマンスが向上します。
他 方このオプションを使用する場合、不正な結果が返されることを避けるために、4Dメソッド内で使用される変数をシステマチックに初期化するようにしてくだ さい。同様に、以前のリクエストで使用されたカレントセレクションやカレントレコードをアンロードする必要があります。
データベース設定で、Webサーバに適用するアクセスkんトロールシステムを設定できま す。2つの認証モード、BASICモードとDIGESTモードが提供されています。認証モードはユーザ名とパスワードに関する情報の取得と処理方法に関連します。
- BASICモードでは、ユーザが入力したユーザ名とパスワードは暗号化されずにHTTPリクエストに含められて送信されます。この場合情報は第三者に盗聴・使用される可能性があるので、トータルなセキュリティは確保されません。
- DIGESTモードはより高いセキュリティレベルを提供します。認証情報は複合が困難な一方向ハッシュを使用して処理されます。
ユーザにとり、いずれの認証モードを使用するかは透過的です。
Notes:
互換性の理由から、バージョン11に変換された4Dデータベースでは、BASIC認証モードがデフォルトで使用 されます (“パスワードを使用” オプションが以前のバージョンでチェックされていれば)。Digestモードを使用するには明示的に指定しなければなりません。
Digest認証 はHTTP1.1の機能で、すべてのブラウザでサポートされているわけではありません。例えばバージョン5.0以降のMicrosoft Internet Explorerがこのモードを受け入れます。Digestモードが有効な時に、この機能をサポートしないブラウザがWebサーバにリクエストを送信する と、サーバはリクエストを拒否し、エラーメッセージをブラウザに返します。
データベース設定ダイアログボックスで、Webサーバに適用するアクセスコントロールシステムを定義できます。これを行うにはWebテーマのオプション (I)ページを表示します:
![](../../picture/240393/pict240393.en.png)
"Webパスワード"エリアで、3つのオプションから選択できます:
- パスワードなし: Webサーバへの接続に認証を実行しない。この場合:
- が 存在すれば、それが実行され、$1と$2に加え、ブラウザとサーバのIPアドレス ($3と$4) だけが提供されます。ユーザ名とパスワード ($5と$6) は空です。この場合、ブラウザのIPアドレスやリクエストされたサーバのIPアドレスを使用して、リクエストをフィルタできます。
- が存在しない場合、接続は自動で受け入れられます。
- BASIC認証のパスワード: BASICモードの標準認証です。ユーザがサーバに接続するとダイアログボックスがブラウザ上に表示され、ユーザ名とパスワードの入力を求められます。これら2つの値は他の接続パラメタ (IPアドレス、URI) とともにに送信され、開発者はそれを処理できます。
Note: この場合、が存在しないと、接続は拒否されます。
このモードを有効にすると、4Dパスワードを含むオプションが有効になり、カスタムパスワードシステムの代わりに、あるいは追加として使用できます。 - DIGEST認証のパスワード: DIGESTモードの認証。BASICモードのように、ユーザは接続時にユーザ名とパスワードを入力します。これら2つの値は暗号化されて、他の接続パラメタとともにに送信されます。この場合Validate Digest Web Password コマンドを使用してユーザを認証しなければなりません。
これらの設定を変更した場合は、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サーバーのアクセスシステムの処理を以下に図示します:
![](../../picture/37771/pict37771.en.png)
事前に4Dパスワードテーブルに登録したユーザーを、“一般Webユーザー”として定義できます。この場合サーバーに接続するブラウザーは、それぞれこの一般ユーザーに割り当てられたアクセス認証や制限を使用できます。これによりデータベースの異なる部分へのブラウザーによるアクセスを簡単にコントロールできます。
注: ブラウザーからメソッドやフォームなどアプリケーションの様々なパーツへのアクセスを制限することを可能にするこのオプションと、パスワードシステムとOn Web Authenticationデータベースメソッドで管理するWebサーバー接続コントロールシステムとを、混同しないでください。
一般Webユーザーを定義するには:
- デザインモードでツールボックスのユーザーエディターを開き、最低1人のユーザーを作成する。ユーザーにパスワードを設定することもできます。
- 他の4Dエディターを使用して、このユーザーに必要なアクセス認証あるいは制限を設定します。
- データベース設定ダイアログで、Webテーマのオプション (I)ページを開く。
“Webパスワード”エリアに一般Webユーザードロップダウンリストがあります。デフォルトで一般WebユーザーはDesignerであり、ブラウザーはデータベース全体にフルアクセスがあります。 - ドロップダウンリストからユーザーを選択し、ダイアログを受け入れます。
![](../../picture/37772/pict37772.ja.png)
データベースへの接続が認証されたすべてのWebブラウザーは、一般Webユーザーに割り当てられたアクセス認証と制限を使用します (BASICモードと“4Dパスワードを含む”オプションがチェックされ、接続したユーザーが4Dパスワードテーブルに存在しない場合を除く、以下参照)。
"BASIC認証のパスワード"は一般Webユーザーがどのように動作するかには影響を与えません。このオプションのステータスにかかわらず、データベースに接続が許可されたすべてのWebブラウザーに、“一般Webユーザー”に割り当てられたアクセス認証と制限が適用されます。
しかし"4Dパスワードを含む"オプションが選択されていると、2つの可能性が発生します:
- ユーザー名とパスワードが4Dパスワードテーブルに存在しない場合。この場合接続がOn Web Authenticationデータベースメソッドで受け入れられると、一般Webユーザーのアクセス権がブラウザに適用されます。
- ユーザー名とパスワードが4Dパスワードテーブルに存在する場合、“一般Webユーザー”は無視され、ユーザーは固有のアクセス権で接続します。