メインコンテンツまでスキップ
バージョン: 20 R7 BETA

設定

4D Webサーバーの設定には、セキュリティパラメーター、リスニングポート、デフォルトのパス、およびサーバーの機能を網羅するさまざまなオプションが含まれます。 4D ではすべての設定にデフォルト値を用意しています。

設定をおこなう場所

4D Webサーバーの設定には、スコープやサーバーに応じた様々な方法があります:

設定場所スコープ使用する Webサーバー
webServer オブジェクト一時的 (カレントセッション)コンポーネントWebサーバーを含む、あらゆる Webサーバー
WEB SET OPTION または WEB XXX コマンド一時的 (カレントセッション)メインサーバー
ストラクチャー設定 ダイアログボックス (Web ページ)永続的 (全セッション、ディスク上に保存)メインサーバー

設定できる場所が限られる設定も一部存在します。

キャッシュ

設定できる場所名称コメント
設定ダイアログボックスオプション (I) ページ / 4D Webキャッシュを使用する
設定ダイアログボックスオプション (I) ページ / ページキャッシュサイズ

Webページキャッシュの有効化と設定をおこないます。

4D Webサーバーにはキャッシュがあり、スタティックページ、GIF、JPEG (<512 kb)、そしてスタイルシート (.css ファイル) などがリクエストされると、メモリにロードされます。 キャッシュの利用は、スタティックページの送信時に Webサーバーのパフォーマンスを大幅に向上します。 キャッシュはすべての Webプロセスで共有されます。 キャッシュが有効化されている場合、4D Webサーバーは、ブラウザーからリクエストされた静的ページをまずキャッシュ内で探します。 ページが見つかれば、それを送信します。 見つからない場合、4D はディスクからページを読み込み、キャッシュに格納します。

キャッシュのサイズは、ページキャッシュサイズ エリアで変更できます。 設定する値は、スタティックページのサイズや数、およびホストマシンで利用可能なリソースによります。

Webデータベースを利用する間、WEB GET STATISTICS コマンドを使用してキャッシュのパフォーマンスを検証できます。 たとえば、キャッシュ利用率が 100% に近い場合、キャッシュに割り当てたメモリ量を増やすことを考慮します。 [/4DSTATS] と [/4DHTMLSTATS] の URL も、キャッシュの状態を知るのに使用できます。

証明書フォルダー

設定できる場所名称コメント
webServer オブジェクトcertificateFolderテキストプロパティ (start() 関数の settings パラメーターと使用する場合は、4D.Folder オブジェクトも使用可能)

Webサーバー用の TLS証明書ファイルが置かれているフォルダーです。

4D または 4D Server のデフォルトでは、これらのファイルはProject フォルダー の隣に配置する必要があります。

4D をリモートモードで使用する場合、これらのファイルは、リモートマシン上のデータベースのローカルリソースフォルダーに配置されている必要があります (Get 4D folder コマンドの 4D Client Database Folder の項を参照ください)。 これらのファイルはリモートマシンに手動でコピーする必要があります。

TLS 証明書ファイルは、key.pem (秘密の暗号鍵を含むドキュメント) と cert.pem (証明書を含むドキュメント) です。

文字コード

設定できる場所名称コメント
webServer オブジェクトcharacterSetMIBEnum 整数、または名称の文字列
WEB SET OPTIONWeb character setMIBEnum 整数、または名称の文字列
設定ダイアログボックスオプション (II) ページ / 文字コードポップアップメニュー

4D Webサーバーが使用する文字セットを定義します。 デフォルト値は OS の言語に依存します。

この設定は、クイックレポートを HTMLフォーマットで書き出す際にも使用されます。

暗号リスト

設定できる場所名称コメント
webServer オブジェクトcipherSuiteテキスト

セキュアプロトコルに使用される暗号リストです。Webサーバーが実装する暗号アルゴリズムの優先順位を設定します。 コロン区切りの文字列として設定できます (例: "ECDHE-RSA-AES128-...")。 詳細は Open SSL サイトの ciphers ページ を参照ください。

4D が使用するデフォルトの暗号リストは、SET DATABASE PARAMETER コマンドを使用してセッションごとに変更することができます。この場合、変更は 4Dアプリケーション全体に適用されます (Webサーバー・SQLサーバー・クライアント/サーバー接続、HTTPクライアント、セキュアプロトコルを使用するすべての 4Dコマンドを含む)。

CORS設定

設定できる場所名称コメント
webServer オブジェクトCORSSettingsオブジェクトのコレクション (CORSサービスで許可されたホストとメソッドの一覧)
WEB SET OPTIONWeb CORS settingsオブジェクトのコレクション (CORSサービスで許可されたホストとメソッドの一覧)
設定ダイアログボックスオプション (II) ページ / ドメイン名 および 許可されたHTTPメソッド新しいドメインとメソッドを許可するには [+] ボタンをクリックして追加します。

CORSサービスで許可されたホストとメソッドの一覧。

ドメイン名 (hostプロパティ)

CORS を介したサーバーへのデータリクエスト送信が許可されている外部ページのドメイン名または IPアドレス。 複数のドメインを追加してホワイトリストを作成することができます。 複数のシンタックスがサポートされています:

許可された HTTPメソッド (methodsプロパティ)

対応する CORSホストに対して許可する HTTPメソッド。 以下の HTTPメソッドがサポートされます:

  • GET
  • HEAD
  • POST
  • PUT
  • DELETE
  • OPTIONS
  • TRACE
  • PATCH

メソッド名はセミコロン区切りで指定します(例: "post;get")。 methods が空、null、あるいは undefined の場合、すべてのメソッドが許可されます。

参照

CORSを有効化

デバッグログ

設定できる場所名称コメント
webServer オブジェクトdebugLognumber
WEB SET OPTIONWeb debug lognumber

Webサーバーの HTTPリクエストログファイル (アプリケーションの "Logs" フォルダーに格納されている HTTPDebugLog_nn.txt (nn はファイル番号)) の状態を指定します。 このログファイルは、Webサーバーに関連する問題をデバッグするのに便利です。 ログには、各リクエスト・レスポンスが rawモードで記録されます。 ヘッダーを含むリクエスト全体が記録され、オプションでボディ部分も記録することができます。

定数説明
0wdl disableWeb HTTP debug log は無効化されています
1wdl enable without bodyWeb HTTP debug log 有効、リクエスト本文なし (本文サイズあり)
3wdl enable with response bodyWeb HTTP debug log 有効、レスポンスの本文のみ
5wdl enable with request bodyWeb HTTP debug log 有効、リクエストの本文のみ
7wdl enable with all body partsWeb HTTP debug log 有効、リクエストおよびレスポンスの本文あり

デフォルトホームページ

設定できる場所名称コメント
webServer オブジェクトdefaultHomepageテキスト
WEB SET HOME PAGEWebプロセス毎に異なる設定が可能
設定ダイアログボックス設定ページ / デフォルトホームページ

Webサーバーのデフォルトホームページを指定します。 このページはスタティックでもセミダイナミックでも可能です。

Webサーバーの初回起動時には、4D はデフォルトで "index.html" という名前のホームページを作成し、HTMLルートフォルダーに置きます。 この設定を変更しない場合、Webサーバーに接続するブラウザーには以下のようなページが表示されます:

デフォルトホームページを変更するには、パスを "デフォルトホームページ" エリアに入力します。

  • パスは、デフォルトHTMLルート からの相対パスで設定しなければなりません。
  • パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。
  • パスはスラッシュ ("/") で始まったり終わったりしてはいけません。

たとえば、デフォルトHTMLルートフォルダー内の "Web" サブフォルダーにある "MyHome.htm" をデフォルトホームページにする場合、"Web/MyHome.htm" と入力します。

デフォルトホームページを指定しない場合、On Web Connection データベースメソッドが呼び出されます。 この場合には、プロシージャーでリクエストを処理するのは開発者の役割です。

CORSを有効化

設定できる場所名称コメント
webServer オブジェクトCORSEnabledブール; CORSを有効化するには true (デフォルト値は false)
WEB SET OPTIONWeb CORS enabled0 (デフォルト値; 無効) または 1 (有効)
設定ダイアログボックスオプション (II) ページ / CORSを有効化デフォルトではチェックなし

4D Webサーバーは、クロスオリジンリソースシェアリング (CORS) を実装しており、これによって別ドメインにて提供されている特定の Webページが、REST などを使用した XHRコールを介してカレントWebアプリケーションのリソースにアクセスできるようにすることが可能です。 セキュリティ上の理由により、"ドメイン間" のリクエストはブラウザーレベルでデフォルトで禁止されています。 有効化されている場合、ドメイン外 Webページからの XHRコール (RESTリクエストなど) をアプリケーションにおいて許可することができます (CORSドメインリストに許可されたアドレスのリストを定義する必要があります。 有効時に、許可されていないドメインやメソッドがサイト間リクエストを送信した場合、"403 - forbidden" エラーレスポンスによって拒否されます。

無効化されている場合 (デフォルト) には、CORS で送信されたサイト間リクエストはすべて無視されます。

CORS についての詳細は、Wikipedia のCross-origin resource sharing ページを参照ください。

参照

CORS設定

HTTPを有効化

設定できる場所名称コメント
webServer オブジェクトHTTPEnabledboolean
WEB SET OPTIONWeb HTTP enabled
設定ダイアログボックス設定ページ / HTTPを有効化

安全でない接続を Webサーバーが受け入れるかどうかを示します。

HTTPSを有効にする

設定できる場所名称コメント
webServer オブジェクトHTTPSEnabledboolean
WEB SET OPTIONWeb HTTPS enabled
設定ダイアログボックス設定ページ / HTTPSを有効にする

Webサーバーがセキュアな接続を受け入れるか受け入れないかを指定します。 このオプションは TLSプロトコル で説明しています。

HSTSを有効にする

設定できる場所名称コメント
webServer オブジェクトHSTSEnabledブール; HSTSを有効化するには true (デフォルト値は false)
WEB SET OPTIONWeb HSTS enabled0 (デフォルト値; 無効) または 1 (有効)

HTTP Strict Transport Security (HSTS) の状態です。

HTTPSを有効 にした場合、同時に HTTPも有効になっていると、ブラウザー上では HTTPS と HTTP を切り替えることができることに注意が必要です (たとえば、ブラウザーのアドレスバーで、ユーザーは "https" を "http" に置き換えることができます)。 HTTP へのリダイレクトを禁止するには、HTTPを無効 にすることもできますが、この場合、クライアントの HTTPリクエストに対してエラーメッセージが表示されてしまいます。

HSTS によって、4D Webサーバーはブラウザーに対し、セキュアな HTTPS接続のみを許可すると宣言できます。 HSTS を有効にすると、4D Webサーバーはすべてのレスポンスヘッダーに HSTS 関連の情報を自動的に追加します。 4D Webサーバーからの初回レスポンスを受け取った際にブラウザーは HSTS情報を記録し、以降の HTTPリクエストは自動的に HTTPSリクエストに変換されます。 ブラウザー側でこの情報が保存される時間は HSTS max age 設定によって指定されます。

HSTS のためには、サーバー上で HTTPS が有効になっていなくてはなりません。 また、クライアントの初回接続を許可するために、HTTP も有効 でなくてはなりません。

現在の接続モードは、WEB Is secured connection コマンドで取得できます。

HSTS Max Age

設定できる場所名称コメント
webServer オブジェクトHSTSMaxAge数値 (秒単位)
WEB SET OPTIONWeb HSTS max age数値 (秒単位)

新規クライアント接続ごとに HSTS がアクティブな最長時間 (秒単位) を指定します。 この情報はクライアント側で指定された時間のあいだ保存されます。 デフォルト値は 63072000 (2年)。

警告: HSTS が有効な間、クライアントの接続はこのメカニズムを使用し続けます。 アプリケーションをテストする際には、セキュアな接続とセキュアでない接続を必要に応じて切り替えることができるように、短い時間を設定することが推奨されます。

HTTP圧縮レベル

設定できる場所名称コメント
webServer オブジェクトHTTPCompressionLevel
WEB SET OPTIONWeb HTTP compression levelWeb および Webサービスに適用されます

4D Webサーバーの HTTP圧縮通信 (クライアントリクエストまたはサーバーレスポンス) における圧縮レベル。 この設定を使って、実行速度を優先するか (圧縮少)、それとも圧縮レベルを優先するか (速度減) を指定し、通信を最適化することができます。 適切な値は、通信データのサイズとタイプによって異なります。

1 から 9 の値を指定します (1 が低圧縮、9 が高圧縮)。 -1 を指定すると、圧縮速度と圧縮率の妥協点が得られます。 デフォルトの圧縮レベルは 1 (低圧縮) です。

HTTP圧縮のしきい値

設定できる場所名称コメント
webServer オブジェクトHTTPCompressionThreshold
WEB SET OPTIONWeb HTTP compression threshold

最適化されたHTTP通信のフレームワークにおける、HTTP圧縮のしきい値 (バイト単位)。 このサイズ未満のリクエストについては、通信が圧縮されません。 この設定は、通信サイズが小さい場合、圧縮に処理時間が費やされるのを避けるのに有用です。

サイズを数値 (バイト単位) で指定します。 デフォルトのしきい値は 1024 バイトに設定されています。

HTTP ポート

設定できる場所名称コメント
webServer オブジェクトHTTPPortnumber
WEB SET OPTIONWeb port ID
設定ダイアログボックス設定ページ / HTTPポート

HTTP接続を受け付ける IP (TCP) ポート番号。 デフォルトで、4D は通常の Web HTTPポート (TCPポート) 番号である 80番を使用して Webアプリケーションを公開します。 他の Webサービスによってこのポート番号が既に使用されている場合、4D が使用する HTTPポート番号を変更する必要があります。

macOS では、HTTPポートを変更することで、rootユーザーでなくても Webサーバーを開始することができるようになります (macOS での Helperツール 参照)。

デフォルトでない HTTPポート番号を使用して公開された Webアプリケーションに接続するには、Webブラウザーで入力するアドレスにポート番号を含めなければなりません。 アドレスの後にコロンに続けてポート番号を指定します。 たとえば、HTTPポート番号 8080を使用する場合、"123.4.567.89:8080" のように書きます。

警告: デフォルトの TCPポート番号 (標準モードで 80、HTTPSモードで 443) 以外を指定する場合、同時に使用する他のサービスのデフォルトポート番号を使わないよう注意が必要です。 たとえば、Webサーバーマシンで FTPプロトコルを使用する計画である場合、このプロトコルのデフォルトである TCPポート 20 と 21 を使用してはいけません。 256 より下のポート番号は、well-known サービスに予約されています。また、256 から 1024 は UNIXプラットフォーム由来のサービスに予約されています。 セキュリティのため、これらの数値よりも上、たとえば 2000台や 3000台などを指定します。

0 を指定すると、4D はデフォルトの HTTPポート番号 80を使用します。

HTTP Trace

設定できる場所名称コメント
webServer オブジェクトHTTPTraceブール; デフォルトは false
WEB SET OPTIONWeb HTTP TRACE数値; デフォルトは 0 (無効)

4D Webサーバーの HTTP TRACE メソッドを有効化します。 セキュリティ上の理由により、4D Webサーバーはデフォルトで HTTP TRACE リクエストをエラー405 で拒否します。 必要に応じて有効化された場合、HTTP TRACE リクエストに対して Webサーバーは、リクエスト行、ヘッダー、および本文を返します。

HTTPS ポート

設定できる場所名称コメント
webServer オブジェクトHTTPSPortnumber
WEB SET OPTIONWeb HTTPS port ID
設定ダイアログボックス設定ページ / HTTPSポート

TLS を介した HTTPS接続を受け付ける IPポート番号。 デフォルトで HTTPSポート番号は 443です。 ポート番号に関する詳細については、HTTP ポート を参照ください。

非動作プロセスのタイムアウト

設定できる場所名称コメント
webServer オブジェクトinactiveProcessTimeout
WEB SET OPTIONWeb inactive process timeout
設定ダイアログボックスオプション (I) ページ / 非動作プロセスのタイムアウトスライダー

旧式セッションと紐づいた非アクティブWebプロセスのタイムアウト時間 (分単位) を設定します。 タイムアウト時間が経過すると、サーバーはプロセスを終了します。すると、On Web Legacy Close Session データベースメソッドが呼び出され、セッションのコンテキストは削除されます。

デフォルト値: 480分 (デフォルト値に戻すには 0 を指定します)

非アクティブセッションタイムアウト

設定できる場所名称コメント
webServer オブジェクトinactiveSessionTimeout
WEB SET OPTIONWeb inactive session timeout

非アクティブセッションのタイムアウト時間 (分単位) を cookie に設定します。 タイムアウト時間が経過するとセッションcookie が無効になり、HTTPクライアントによって送信されなくなります。

デフォルト値: 480分 (デフォルト値に戻すには 0 を指定します)

リクエストを受け付ける IPアドレス

設定できる場所名称コメント
webServer オブジェクトIPAddressToListen
WEB SET OPTIONWeb IP address to listen
設定ダイアログボックス設定ページ / IPアドレスポップアップメニュー

4D Webサーバーが HTTPリクエストを受け付ける IPアドレスを指定できます (4Dローカルおよび 4D Server)。

デフォルトでは、特定のアドレスが定義されていないため (設定ダイアログボックスでは 任意 の値)、サーバーはすべての IPアドレスに応答します。 特定のアドレスを指定すると、サーバーはこの IPアドレスへのリクエストにのみ応答します。 この機能は複数の TCP/IPアドレスが設定されたマシン上で動作する 4D Webサーバーのためのものです。 これはしばしば、インターネットホストプロバイダーで使用されます。

とりうる値: IPアドレス文字列。 IPv6 文字列フォーマット (例: "2001:0db8:0000:0000:0000:ff00:0042:8329") と IPv4 文字列フォーマット (例: "123.45.67.89") の両方がサポートされます。

IPv6 のサポートについて

  • TCPポートが使用済みでも警告は出ません
    サーバーが応答する IPアドレスが "任意" に設定されていた場合、TCPポートが他のアプリケーションで使用されていても、それはサーバー起動時に指摘されません。 IPv6 アドレスのポートが空いているため、この場合 4D Server はどのようなエラーも検知しません。 しかしながら、マシンの IPv4アドレスを使用、またはローカルアドレス 127.0.0.1 を使用してアクセスすることは不可能です。

定義されたポートで 4D Server が反応していないようであれば、サーバーマシンで [::1] のアドレスを試してみてください (IPv6 における 127.0.0.1 と同義です。他のポート番号をテストするには [:portNum] を追加してください)。 4D が応答するようであれば、IPv4 のポートを他のアプリケーションが使用している可能性が高いです。

  • IPv4-マップされた IPv6アドレス
    プロセスを標準化するために、4D では IPv4アドレスの標準ハイブリッド表示を IPv6 で提供しています。 これらのアドレスは IPv6フォーマットにおいて 96ビットの接頭辞付きで書かれ、その後に IPv4ドット区切り表記で書かれた 32ビットが続きます。 たとえば、::ffff:192.168.2.34 は、192.168.2.34 という IPv4アドレスを表します。

  • ポート番号の表記
    IPv6 記法はコロン (:) を使用するので、ポート番号を追加するときには混乱を招く恐れがあることに注意が必要です。たとえば:

	2001:0DB8::85a3:0:ac1f:8001 // IPv6アドレス
2001:0DB8::85a3:0:ac1f:8001:8081 // ポート 8081 指定の IPv6アドレス

混乱を避けるため、 IPv6アドレスをポート番号と併記する際には、以下の様に [ ] でアドレスを囲う記法が推奨されます:

	[2001:0DB8::85a3:0:ac1f:8001]:8081 // ポート 8081 指定の IPv6アドレス

旧式セッション (自動セッション管理)

設定できる場所名称コメント
webServer オブジェクトkeepSession
WEB SET OPTIONWeb keep session
設定ダイアログボックスオプション (I) ページ / 旧式セッション (シングルプロセスセッション)変換されたプロジェクトのみ

4D Webサーバーによる旧式セッション管理を有効/無効にします (廃止予定)。

このオプションが選択されていると、"一時的なコンテキストを再利用する" オプションも自動で選択され、ロックされます。

ログの記録

設定できる場所名称コメント
webServer オブジェクトlogRecording
WEB SET OPTIONWeb log recording
設定ダイアログボックスログ (タイプ) ページポップアップメニュー

4D Web サーバーが受け取るリクエストのログを開始/停止します。ログは、logweb.txt ファイルに記録され、そのフォーマットを指定することができます。 デフォルトでは、リクエストは規則されません (0 / ログファイルなし)。 有効化されると、logweb.txt ファイルが Logs フォルダー内に自動で保存されます。

このファイルのフォーマットを指定することができます。 使用可能な値:

フォーマット説明
0ログファイルなしデフォルト
1CLF形式で記録するCommon Log Format - それぞれのリクエストが行単位でファイル内に表示されます: host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length - 各フィールドはスペースによって区切られ、各行は CR/LF シーケンスで終ります。
2DLF形式で記録するCombined Log Format - CLFフォーマットを使いながら、各リクエストの最後に 2つのHTTPフィールド、Refererと User-agent を追加します。
3ELF形式で記録するExtended Log Format - 設定ダイアログボックスにてカスタマイズします。
4WLF形式で記録するWebStar Log Format - 設定ダイアログボックスにてカスタマイズします。

フォーマット3、4はカスタムフォーマットで、あらかじめ 設定ダイアログボックス にて内容を指定しておく必要があります。 このページでフィールドを選択せずにこれらのフォーマットを使用した場合、ログファイルは生成されません。

最大同時Webプロセス

設定できる場所名称コメント
webServer オブジェクトmaxConcurrentProcesses
WEB SET OPTIONWeb max concurrent processes
設定ダイアログボックスオプション (I) ページ / 最大同時Webプロセス

セッションなし または 旧式セッション が使用されているときの、サーバー上で同時に開くことのできるすべての Webプロセスの最大同時接続数の厳格な上限を設定します (スケーラブルセッション では、数の制限なく プリエンプティブプロセスがサポートされています)。 このパラメーターは、異常な数のリクエストによる 4D Webサーバーの飽和状態を避けるために使用します。 最大Web同時接続数 (マイナス1) に達すると、4D は新しいプロセスを作成せず、HTTPステータス 503 - Service Unavailable を新規リクエストに対して返信します。

デフォルト値は 100 です。 10から32000までの値を設定できます。

最大リクエストサイズ

設定できる場所名称コメント
webServer オブジェクトmaxRequestSize
WEB SET OPTIONWeb maximum requests size

Webサーバーに処理を許可する HTTPリクエスト (POST) の最大サイズ (バイト単位)。 デフォルト値は 2,000,000 (2MBより、すこし少ない値) です。 最大値 (2,147,483,648) に設定した場合、実際には制限無しということになります。

制限を設けることで、サイズが非常に大きいリクエストによって Webサーバーが過負荷状態に陥ることを防ぎます。 リクエストのサイズが制限に達していると、4D Webサーバーによって拒否されます。

とりうる値: 500,000 - 2,147,483,648。

最大同時セッション数

設定できる場所名称コメント
webServer オブジェクトmaxSessions
WEB SET OPTIONWeb max sessions

旧式セッションにおける同時セッションの最大数。 設定された制限に達すると、Webサーバーが新規セッションを作成するときに、一番古い旧式セッションが閉じられます (On Web Legacy Close Session データベースメソッドが呼び出されます)。 旧式の同時セッション数は、Webプロセスの最大値を超えることはできません (デフォルトは 100)。

デフォルト値: 100 (デフォルト値に戻すには 0 を指定します).

最低TLSバージョン

設定できる場所名称コメント
webServer オブジェクトminTLSVersionnumber

接続に必要な最低TLSバージョン。 これよりも低いバージョンのみをサポートするクライアントからの接続は拒否されます。

とりうる値:

  • 1 = TLSv1_0
  • 2 = TLSv1_1
  • 3 = TLSv1_2 (デフォルト)
  • 4 = TLSv1_3

変更した場合、設定を反映するには Webサーバーを再起動する必要があります。

4D が使用する最低TLSバージョンは、SET DATABASE PARAMETER コマンドを使用してセッションごとに変更することができます。この場合、変更は 4Dアプリケーション全体に適用されます (Webサーバー・SQLサーバー・クライアント/サーバー接続を含む)。

名称

設定できる場所名称コメント
webServer オブジェクトname

Webサーバーアプリケーションの名称。 コンポーネントの Webサーバーが起動されているときに便利です。

OpenSSL バージョン

設定できる場所名称コメント
webServer オブジェクトopenSSLVersion読み取り専用

使用されている OpenSSLライブラリのバージョン。

Perfect Forward Secrecy (PFS)

設定できる場所名称コメント
webServer オブジェクトperfectForwardSecrecyブール; 読み取り専用

Webサーバーの PFS利用可否状況 (TLS 参照)。

一時的なコンテキストを再利用する (リモートモード)

設定できる場所名称コメント
設定ダイアログボックス[オプション (I) ページ / 一時的なコンテキストを再利用する

このオプションは、セッションなし オプションがチェックされている場合にのみ利用できます。

前の Webリクエストを処理するために作成された Webプロセスを再利用することによって、4Dリモートモードで実行されている 4D Webサーバーの動作を最適化できます。 実際、4D Webサーバーはそれぞれの Webリクエストを処理するために専用の Webプロセスを必要とします。 リモートモードでは、このプロセスは必要に応じて、データやデータベースエンジンにアクセスするために 4D Server に接続します。 そしてプロセス独自の変数やセレクションを使用して、一時的なコンテキストを作成します。 リクエストの処理が終了すると、このプロセスは廃棄されます。

一時的なコンテキストを再利用する オプションがチェックされていると、リモートモードの 4D は作成された固有の Webプロセスを保守し、その後のリクエストで再利用します。 プロセスの作成処理が省略されるため、Webサーバーのパフォーマンスが向上します。

他方このオプションを使用する場合、不正な結果が返されることを避けるために、4Dメソッド内で使用される変数をシステマチックに初期化する必要があります。 同様に、以前のリクエストで使用されたカレントセレクションやカレントレコードをアンロードする必要があります。

このオプションはリモートモードの 4D Webサーバーでのみ効果があります。 ローカルモードの 4D では (セッション管理をおこなうプロセスを除く) すべてのWebプロセスが使用後に終了されます。

Robots.txt

特定のクローラー (クエリエンジン、スパイダー...) は Webサーバーやスタティックページをクロールします。 クローラーにサイトへアクセスさせたくない場合、アクセスを禁止する URL を指定できます。

これには、ROBOTS.TXT ファイルをサーバーのルートに置きます。 このファイルの内容は以下の構造になっていなければなりません:

User-Agent: <name>
Disallow: <URL> または <beginning of the URL>

例:

   User-Agent: *
Disallow: /4D
Disallow: /%23%23
Disallow: /GIFS/
  • "User-Agent: *" は、すべてのクローラーが対象であることを示します。
  • "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。
  • "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。
  • "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。

他の例題:

   User-Agent: *
Disallow: /

この場合、クローラーにサイト全体へのアクセスを許可しないことを通知します。

ルートフォルダー

設定できる場所名称コメント
webServer オブジェクトrootFolderテキストプロパティ (start() 関数の settings パラメーターと使用する場合は、4D.Folder オブジェクトも使用可能)
WEB SET ROOT FOLDER
設定ダイアログボックス設定ページ / デフォルトHTMLルート

4D がブラウザーに送信するスタティック/セミダイナミックな HTMLページ、ピクチャーなどを検索するフォルダーを指定します。 これが、Webサーバーのルートフォルダーです。 パスは、POSIXフルパスの形式です。 ルートフォルダーの変更を反映するには、Webサーバーを再起動する必要があります。

さらに HTMLルートフォルダーは、Webサーバーのディスク上で、ファイルに対するアクセスができない階層を定義することにもなります。 ブラウザーから送られた URL や 4Dコマンドが、HTMLルートフォルダーよりも上の階層にアクセスしようとすると、ファイルが存在しないことを示すエラーが返されます。

デフォルトで、4D は WebFolder という名前のデフォルトHTMLルートフォルダーを定義します。 Webサーバーの初回起動時にこのフォルダーが存在しなければ、HTMLルートフォルダーは物理的にディスク上に作成されます。 ルートフォルダーは以下の場所に作成されます:

  • 4D (ローカル) および 4D Server では、Project フォルダー と同階層。
  • 4Dリモートモードでは、ローカルのリソースフォルダー内

デフォルトHTMLルートフォルダーを変更するには、パスを "デフォルトHTMLルート" に入力します。

  • このとき、相対パスの起点は Projectフォルダー (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。
  • パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。
  • フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。
  • パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。

たとえば、HTMLルートフォルダーを "MyWebApp" フォルダーの “Web” サブフォルダーにしたい場合、"MyWebApp/Web" と入力します。

HTMLルートフォルダーを変更すると、アクセスが制限されているファイルを格納しないようにするため、キャッシュがクリアされます。

スケーラブルセッション

設定できる場所名称コメント
webServer オブジェクトscalableSession
WEB SET OPTIONWeb スケーラブルセッション
設定ダイアログボックスオプション (I) ページ / スケーラブルセッション (マルチプロセスセッション)

4D Webサーバーでのスケーラブルセッション管理を有効/無効にします。 Webサーバーセッションの詳細については、Webセッション のページを参照ください。

セッションcookieドメイン

設定できる場所名称コメント
webServer オブジェクトsessionCookieDomain
WEB SET OPTIONWeb session cookie domain

セッションcookie の "domain" フィールド。 セッションcookie のスコープを制御するのに使用されます。 たとえば、このセレクターに "/*.4d.fr" の値を設定した場合、リクエストの宛先が ".4d.fr" のドメインに限り、クライアントは cookie を送信します。つまり、外部の静的データをホストするサーバーは除外されます。

セッションcookie名

設定できる場所名称コメント
webServer オブジェクトsessionCookieName
WEB SET OPTIONWeb session cookie name

セッションID の保存に使用されるセッションcookie の名称。 デフォルト = "4DSID"。

セッションcookieパス

設定できる場所名称コメント
webServer オブジェクトsessionCookiePath
WEB SET OPTIONWeb session cookie path

セッションcookie の "path" フィールド。 セッションcookie のスコープを制御するのに使用されます。 たとえば、このセレクターに "/4DACTION" という値を設定した場合、4DACTION で始まる動的リクエストの場合にのみクライアントは cookie を送信し、ピクチャーや静的ページへのリクエストは除外されます。

セッションcookie SameSite

設定できる場所名称コメント
webServer オブジェクトsessionCookieSameSite

セッションcookie の SameSite 属性の値。 この属性は、一部のクロスサイトリクエストフォージェリ (CSRF) 攻撃からの保護として、ファーストパーティーコンテキストまたは同一サイトコンテキストのどちらかに cookie を限定するかを宣言することができます。

SameSite 属性に関する詳細な説明は Mozilla のドキュメンテーション または こちらの Web開発ページ (英語) を参照ください。

次の値が提供されています:

  • "Strict" (4Dセッションcookie の SameSite 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。
  • "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。
  • "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の Secure 属性も設定する必要があります (設定しないと、cookie がブロックされます)。

セッションcookie の Secure 属性値は、HTTPS接続の場合には (SameSite 属性値が何であれ)、自動的に "True" に設定されます。

HTTPサーバーで SameSite=None を設定することは、(HTTPS でのみ使用される) Secure 属性が欠落し、cookie がブロックされるため、推奨されません。

プリエンプティブプロセスを使用

設定できる場所名称コメント
設定ダイアログボックスオプション (I) ページ / プリエンプティブプロセスを使用

このオプションは、セッションなし オプションが選択されている場合に、アプリケーションの Webサーバーコードのプリエンプティブモードを有効にします (スケーラブルセッション では、プリエンプティブモードは常に有効です)。 このコンテキストにおいて当該オプションがチェックされているとき、4Dコンパイラは Web関連のコード それぞれのスレッドセーフプロパティを自動的に評価し、違反があった場合にはエラーを返します。

廃止予定の設定

以下の設定は現在もサポートされていますが、廃止予定の機能や技術に依存しています。 通常はデフォルト値のままにしておくことが推奨されます。

"4DSYNC" URLを使用したデータベースアクセスを許可

このオプションを使用して、廃止予定の /4DSYNC URL による HTTP同期サポートを制御します。

セッション IPアドレス検証

スケーラブルセッションモード の場合には、このオプションは利用できません (検証はおこなわれません)。

セッションcookie の IP アドレス検証のステータス。 セキュリティ上の理由により、セッションcookie を持つ各リクエストに対して 4D Webサーバーはデフォルトで IPアドレスを検証します。 アプリケーションによっては、この検証機能を無効化し、IPアドレスが合致しなくてもセッションcookie を受け入れるようにしたいかもしれません。 たとえば、モバイルデバイスが WiFi と 4G/5G ネットワークを切り替えた場合、IPアドレスが変更されます。 このように IPアドレスが変更しても、クライアントによる Webセッションの継続を許可するには、このオプションに 0 を渡します。 この設定はアプリケーションのセキュリティレベルを下げることに留意が必要です。 この設定が変更された際には、その設定は直ちに反映されます (HTTPサーバーを再起動する必要はありません)。

拡張文字をそのまま送信

このオプションを有効にすると、Webサーバーはセミダイナミックページの拡張文字を、HTML標準に基づいた変換をおこなわずに「そのまま」送信します。 このオプションにより、とくに Shift_JIS文字コード利用時の日本語のシステムで速度が向上します。

Keep-Alive接続を使用する

4D Webサーバーは Keep-Alive接続を使用できます。 keep-alive接続を使用すると、Webブラウザーとサーバー間の一連のやり取りについて単一の TCP接続を維持し、システムリソースの節約と通信の最適化を図ることができます。

Keep-Alive接続を使用する オプションは、Webサーバーの Keep-Alive接続を有効および無効にします。 このオプションはデフォルトで有効になっています。 ほとんどの場合、通信が高速化されるため、この状態をお勧めします。 Webブラウザーが Keep-Alive接続をサ ポートしない場合、4D Webサーバーは自動で HTTP/1.0 に切り替えます。

4D Webサーバーの Keep-Alive機能はすべての TCP/IP接続 (HTTP, HTTPS) に関連します。 しかしながら、すべての 4D Webプロセスで常に Keep-Alive接続が使用されるわけではないことに留意してください。

あるケースでは、内部的な他の最適化機能が呼び出されることがあります。 Keep-Alive接続は、おもにスタティックページで有効です。

Keep-Alive接続を設定する 2つのオプションがあります:

  • 接続毎のリクエスト数: ひとつの Keep-Alive接続におけるリクエストとレスポンスの最大数を設定します。 接続あたりのリクエスト数を制限することで、サーバーのリクエスト過多を避けることができます (攻撃者が使用するテクニック)。

    4D Webサーバーをホストするマシンのリソースに応じて、デフォルト値 (100) を増減できます。

  • タイムアウト: この値を使用して、Webブラウザーからリクエストがおこなわれない状態で、Webサーバーが開かれた接続を保守する最大の待ち秒数を設定します。 この秒数が経過すると、サーバーは接続を閉じます。

    接続が閉じられた後に Webブラウザーがリクエストを送信すると、新しい TCP接続が作成されます。 この動作はユーザーからは見えません。