WebServer
WebServer クラス API を使って、メイン (ホスト) アプリケーションおよび、各コンポーネントの Webサーバーを開始・モニターすることができます (Webサーバーオブジェクト 参照)。このクラスは 4D クラスストアより提供されます。
プロパティ
- ストリーム可能: いいえ
- 共有可能: いいえ
Webサーバーオブジェクト
Webサーバーオブジェクトは WEB Server コマンドによってインスタンス化されます。
これらは、次のプロパティや関数を持ちます:
| .accessKeyDefined : Boolean Webサーバーの設定にアクセスキーが定義されていれば true |
| .certificateFolder : Text 証明書ファイルが保存されているフォルダー |
| .characterSet : Number .characterSet : Text アプリケーションに接続してくるブラウザーとの通信に 4D Webサーバーが使用すべき文字セット |
| .cipherSuite : Text 保護されたプロトコルのために使用される暗号スイートリスト |
| .CORSEnabled : Boolean Web サーバーの CORS (Cross-origin resource sharing、オリジン間リソース共有) サービス状態 |
| .CORSSettings : Collection CORSサービスに許可されたホストとメソッドの一覧 |
| .debugLog : Integer HTTPリクエストログファイルの状態 |
| .defaultHomepage : Text デフォルトのホームページの名称 |
| .handlers : Collection カスタム HTTPハンドラーオブジェクトのコレクション |
| .HSTSEnabled : Boolean HTTP Strict Transport Security (HSTS) 状態 |
| .HSTSMaxAge : Integer 新規クライアント接続ごとに HSTS がアクティブな最長時間 (秒単位) |
| .HTTPCompressionLevel : Integer 4D HTTPサーバーの HTTP圧縮通信 (クライアントリクエストまたはサーバーレスポンス) における圧縮レベル |
| .HTTPCompressionThreshold : Integer HTTP圧縮のしきい値 (バイト単位)。このサイズ未満のリクエストについては、通信が圧縮されません |
| .HTTPEnabled : Boolean HTTPプロトコル状態 |
| .HTTPPort : Integer HTTP のリッスンIPポート番号 |
.HTTPTrace : BooleanHTTP TRACE の有効化状態 |
| .HTTPSEnabled : Boolean HTTPSプロトコル状態 |
| .HTTPSPort : Integer HTTPS のリッスンIPポート番号 |
| .inactiveProcessTimeout : Integer 旧式セッションプロセスの非アクティブタイムアウト時間 (分単位) |
| .inactiveSessionTimeout : Integer 旧式セッションの非アクティブタイムアウト時間 (分単位; cookie にて設定) |
| .IPAddressToListen : Text 4D Webサーバーが HTTPリクエストを受信する IPアドレス |
| .isRunning : Boolean Webサーバーで旧式セッションが有効されている場合に true、それ以外は false |
| .keepSession : Boolean Webサーバーで旧式セッションが有効されている場合に true、それ以外は false |
| .logRecording : Integer リクエストログ (logweb.txt) の記録オプション値 |
| .maxConcurrentProcesses : Integer Webサーバーにてサポートする最大同時Webプロセス数 |
| .maxRequestSize : Integer Webサーバーが処理してよい HTTPリクエスト (POST) の最大サイズ (バイト単位) |
| .maxSessions : Integer 旧式セッションにおける同時セッションの最大数 |
| .minTLSVersion : Integer 接続に必要な最低TLSバージョン |
| .name : Text Webサーバーアプリケーションの名称 |
| .openSSLVersion : Text 使用されている OpenSSLライブラリのバージョン |
| .perfectForwardSecrecy : Boolean サーバーの PFS利用可否状況 |
| .quotas : 4D.QuotaManager Web サーバーに対してクォータを設定し監視することを可能にする 4D.QuotaManager オブジェクト |
| .rootFolder : Text Webサーバーのルートフォルダーのパス |
| .rules : Collection HTTP ヘッダーをカスタマイズするために現在管理されているルールオブジェクトのコレクション |
| .scalableSession : Boolean Webサーバーがスケーラブルセッションを使用している場合に true、それ以外は false |
| .sessionCookieDomain : Text セッションcookie の "path" フィールド |
| .sessionCookieName : Text セッションID の保存に使用されるセッションcookie の名称 |
| .sessionCookiePath : Text セッションcookie の "path" フィールド |
| .sessionCookieSameSite : Text セッションcookie の "SameSite" 属性の値 |
| .sessionIPAddressValidation : Boolean セッションcookie の IP アドレス検証 |
| .start() : Object .start( settings : Object ) : Object 対象の Webサーバーを開始させます |
| .stop() 対象の Webサーバーを停止します |
.accessKeyDefined
.accessKeyDefined : Boolean
.accessKeyDefined プロパティは、Webサーバーの設定にアクセスキーが定義されていれば trueを格納します。このプロパティは WebAdmin Webサーバーによって、管理インターフェースのセキュリティ設定を有効化するのに使用されます。
.certificateFolder
.certificateFolder : Text
証明書ファイルが保存されているフォルダーのパス。パスは、ファイルシステムを使用した POSIXフルパスの形式です。 .start() 関数に渡す settings 引数内でこのプロパティを使用する場合、Folder オブジェクト も使用可能です。
.characterSet
.characterSet : Number
.characterSet : Text
アプリケーションに接続してくるブラウザーとの通信に 4D Webサーバーが使用すべき文字セット。デフォルト値は OS の言語に依存します。値には、MIBenum 整数や名称の文字列、IANA が定義する識別子を使用できます。以下は、4D Webサーバーがサポートしている文字セットに対応する識別子のリストです:
- 4 = ISO-8859-1
- 12 = ISO-8859-9
- 13 = ISO-8859-10
- 17 = Shift-JIS
- 2024 = Windows-31J
- 2026 = Big5
- 38 = euc-kr
- 106 = UTF-8
- 2250 = Windows-1250
- 2251 = Windows-1251
- 2253 = Windows-1253
- 2255 = Windows-1255
- 2256 = Windows-1256
.cipherSuite
.cipherSuite : Text
保護されたプロトコルのために使用される暗号スイートリスト。これは、4D Webサーバーが実装する暗号化アルゴリズムの優先順位を設定します。コロン区切りの文字列として設定できます (例: "ECDHE-RSA-AES128-...")。詳細は Open SSL サイトの ciphers ページ を参照ください。
.CORSEnabled
.CORSEnabled : Boolean
Web サーバーの CORS (Cross-origin resource sharing、オリジン間リソース共有) サービス状態。セキュリティ上の理由により、"ドメイン間" のリクエストはブラウザーレベルでデフォルトで禁止されています。有効化されている場合 (true)、ドメイン外 Webページからの XHRコール (RESTリクエストなど) をアプリケーションにおいて許可することができます (CORSドメインリストに許可されたアドレスのリストを定義する必要があります。後述の CORSSettings 参照)。無効化されている場合 (false、デフォルト) には、CORS で送信されたサイト間リクエストはすべて無視されます。有効時 (true) に、許可されていないドメインやメソッドがサイト間リクエストを送信した場合、"403 - forbidden" エラーレスポンスによって拒否されます。
デフォルト: false (無効)
CORS についての詳細は、Wikipedia のCross-origin resource sharing ページを参照ください。
.CORSSettings
.CORSSettings : Collection
CORSサービスに許可されたホストとメソッドの一覧 (CORSEnabled プロパティ参照)。各オブジェクトは必ず host プロパティを格納していなくてはなりません。 methods プロパティは任意です。
-
host (テキスト、必須): CORS を介したサーバーへのデータリクエスト送信が許可されている外部ページのドメイン名または IPアドレス。複数のドメインを追加してホワイトリストを作成することができます。 host が存在しない、または空の場合、当該オブジェクトは無視されます。複数のシンタックスがサポートされています:
- 192.168.5.17:8081
- 192.168.5.17
- 192.168.*
- 192.168.*:8081
- http://192.168.5.17:8081
- http://\\*.myDomain.com
- http://myProject.myDomain.com
- *.myDomain.com
- myProject.myDomain.com
- *
-
methods (テキスト、任意): 対応する CORSホストに対して許可する HTTPメソッド。メソッド名はセミコロン区切りで指定します(例: "post;get")。 methods が空、null、あるいは undefined の場合、すべてのメソッドが許可されます。
.debugLog
.debugLog : Integer
The HTTPリクエストログファイルの状態 (アプリケーションの"Logs" フォルダーに格納されている HTTPDebugLog_nn.txt ファイル (nn はファイル番号))。
- 0 = 無効
- 1 = 有効、リクエスト本文なし (本文サイズあり)
- 3 = 有効、レスポンスの本文のみ
- 5 = 有効、リクエストの本文のみ
- 7 = 有効、リクエストおよびレスポンスの本文あり
.defaultHomepage
.defaultHomepage : Text
デフォルトのホームページの名称 または、カスタムのホームページを送信しない場合は ""。
.handlers
履歴
| リリース | 内容 |
|---|---|
| 21 | 追加 |
.handlers : Collection
読み取り専用プロパティ
カスタム HTTPハンドラーオブジェクトのコレクション。 HTTPハンドラーオブジェクトには聞いている URLパターン、管理される動詞 (メソッド)、そして呼び出されるべきコードが格納されています。 HTTPハンドラーは HTTPHandlers.json ファイルまたは .start() 関数の settings 引数で定義することができます。詳細については HTTPリクエストハンドラーのページを参照してください。
.HSTSEnabled
.HSTSEnabled : Boolean
HTTP Strict Transport Security (HSTS) 状態。 HSTS によって、Webサーバーはブラウザーに対し、セキュアな HTTPS接続のみを許可すると宣言できます。 Webサーバーからの初回レスポンスを受け取った際にブラウザーは HSTS情報を記録し、以降の HTTPリクエストは自動的に HTTPSリクエストに変換されます。ブラウザー側でこの情報が保存される時間は HSTSMaxAge プロパティによって指定されます。 HSTS のためには、サーバー上で HTTPS が有効になっていなくてはなりません。また、初回のクライアント接続を許可するために、HTTP も有効でなくてはなりません。
.HSTSMaxAge
.HSTSMaxAge : Integer
新規クライアント接続ごとに HSTS がアクティブな最長時間 (秒単位)。この情報はクライアント側で指定された時間のあいだ保存されます。
デフォルト値: 63072000 (2年)。
.HTTPCompressionLevel
.HTTPCompressionLevel : Integer
4D HTTPサーバーの HTTP圧縮通信 (クライアントリクエストまたはサーバーレスポンス) における圧縮レベル。このセレクターを使って、実行速度を優先するか (圧縮少)、それとも圧縮レベルを優先するか (速度減) を指定し、通信を最適化することができます。
とりうる値:
- 1 から 9 (1 が低圧縮、9 が高圧縮)。
- -1 = 圧縮速度と圧縮率の妥協点を設定する
デフォルト = 1 (低圧縮)。
.HTTPCompressionThreshold
.HTTPCompressionThreshold : Integer
HTTP圧縮のしきい値 (バイト単位)。このサイズ未満のリクエストについては、通信が圧縮されません。この設定は、通信サイズが小さい場合、圧縮に処理時間が費やされるのを避けるのに有用です。
デフォルトのしきい値 = 1024 バイト
.HTTPEnabled
.HTTPEnabled : Boolean
HTTPプロトコル状態。
.HTTPPort
.HTTPPort : Integer
HTTP のリッスンIPポート番号。
デフォルト = 80
.HTTPTrace
.HTTPTrace : Boolean
HTTP TRACE の有効化状態。セキュリティ上の理由により、Webサーバーはデフォルトで HTTP TRACE リクエストをエラー405 で拒否します。有効化されている場合、HTTP TRACE リクエストに対して Webサーバーは、リクエスト行、ヘッダー、および本文を返します。
.HTTPSEnabled
.HTTPSEnabled : Boolean
HTTPSプロトコル状態。
.HTTPSPort
.HTTPSPort : Integer
HTTPS のリッスンIPポート番号。
デフォルト = 443
.inactiveProcessTimeout
.inactiveProcessTimeout : Integer
スケーラブルセッションモード の場合には、このプロパティは返されません。
旧式セッションプロセスの非アクティブタイムアウト時間 (分単位)。タイムアウト時間が経過すると、サーバーはプロセスを終了します。すると、On Web Legacy Close Session データベースメソッドが呼び出され、旧式セッションのコンテキストは削除されます。
デフォルト = 480 分
.inactiveSessionTimeout
.inactiveSessionTimeout : Integer
スケーラブルセッションモード の場合には、このプロパティは返されません。
旧式セッションの非アクティブタイムアウト時間 (分単位; cookie にて設定)。タイムアウト時間が経過するとセッションcookie が無効になり、HTTPクライアントによって送信されなくなります。
デフォルト = 480 分
.IPAddressToListen
.IPAddressToListen : Text
4D Webサーバーが HTTPリクエストを受信する IPアドレス。デフォルトでは、特定のアドレスは定義されていません。 IPv6 および IPv4 文字列形式の両方がサポートされています。
.isRunning
.isRunning : Boolean
読み取り専用プロパティ
Webサーバーで旧式セッションが有効されている場合に true、それ以外は false。
.keepSession
.keepSession : Boolean
Webサーバーで旧式セッションが有効されている場合に true、それ以外は false。
参照
.logRecording
.logRecording : Integer
リクエストログ (logweb.txt) の記録オプション値。
- 0 = 記録しない (デフォルト)
- 1 = CLF形式で記録する
- 2 = DLF形式で記録する
- 3 = ELF形式で記録する
- 4 = WLF形式で記録する
.maxConcurrentProcesses
.maxConcurrentProcesses : Integer
Webサーバーにてサポートする最大同時Webプロセス数。この数値 (マイナス1) に達すると、4D はプロセスを作成しなくなり、新規リクエストに対して HTTPステータス 503 - Service Unavailable を返します。
とりうる値: 10 - 32000
デフォルト = 100
.maxRequestSize
.maxRequestSize : Integer
Webサーバーが処理してよい HTTPリクエスト (POST) の最大サイズ (バイト単位)。最大値 (2147483647) に設定した場合、実際には制限無しということになります。制限を設けることで、サイズが非常に大きいリクエストによって Webサーバーが過負荷状態に陥ることを防ぎます。リクエストのサイズが制限に達していると、Webサーバーによって拒否されます。
とりうる値: 500000 - 2147483647
.maxSessions
.maxSessions : Integer
スケーラブルセッションモード の場合には、このプロパティは返されません。
旧式セッションにおける同時セッションの最大数。制限に達すると、Webサーバーが新規セッションを作成するときに、一番古い旧式セッションが閉じられます (On Web Legacy Close Session データベースメソッドが呼び出されます)。旧式セッションの同時セッション数は、Webプロセスの合計値を超えることはできません (maxConcurrentProcesses プロパティ、デフォルト値は 100)。
.minTLSVersion
.minTLSVersion : Integer
接続に必要な最低TLSバージョン。これよりも低いバージョンのみをサポートするクライアントからの接続は拒否されます。
とりうる値:
- 1 = TLSv1_0
- 2 = TLSv1_1
- 3 = TLSv1_2 (デフォルト)
- 4 = TLSv1_3
変更した場合、設定を反映するには Webサーバーを再起動する必要があります。
.name
.name : Text
読み取り専用プロパティ
Webサーバーアプリケーションの名称。
.openSSLVersion
.openSSLVersion : Text
読み取り専用プロパティ
使用されている OpenSSLライブラリのバージョン。
.perfectForwardSecrecy
.perfectForwardSecrecy : Boolean
読み取り専用プロパティ
サーバーの PFS利用可否状況。
.quotas
履歴
| リリース | 内容 |
|---|---|
| 21 R5 | 追加 |
.quotas : 4D.QuotaManager
説明
.quotas プロパティにはWeb サーバーに対してクォータを設定し監視することを可能にする 4D.QuotaManager オブジェクト を格納しています。
クォータは、スケーラブルセッションが有効化されている場合にのみ使用可能です。スケーラブルセッションが無効化されている場合、このプロパティはUndefined(未定義) となります。
スコープレベル
このプロパティにアクセスすると、4D.QuotaManager オブジェクトが返され、これはランタイムで更新していくことができます。クォータは2つの異なるスコープレベルで設定することが可能です:
- サーバーグローバル: クォータは、Web サーバー上の全てのセッションの合計アクティビティに対して適用されます。詳細についてはAt startup およびAt runtime を参照してください。
- セッションデフォルト: クォータはセッションの作成時にそれぞれの新しいセッションに対してデフォルトで適用されます。詳細についてはAt startup およびAt runtime を参照してください。
サーバーグローバルとセッションデフォルトのクォータの両方が設定されている場合、セッションクォータが先にチェックされます。リクエストが受け入れられると、次にサーバーグローバルクォータがチェックされます。
クォータのプロパティの完全な一覧については、4D.QuotaManager クラス を参照してください。設定と適用に関する詳細については、Web サーバークォータ を参照してください。
デフォルトではクォータプロパティはUndefined (未定義)であり、クォータは何も適用されていません。
クォータの値は、Web サーバーの実行中にも変更することが可能です。サーバーグローバルクォータに対する変更は、それ以降のWeb サーバーのアクティビティに対して適用されます。セッションデフォルトのクォータに対する変更は、クォータの値が変更されたあとに新規に作成されたセッションに対して適用されます。 Web サーバーを再起動する必要はありません。
またSession.quotas プロパティを使用することでカレントのREST セッションに対してクォータを設定することもできます。
Web サーバーに対しては4D.QuotaManager オブジェクトの以下のプロパティが利用可能です:
| プロパティ | 型 | 書込可能 | 説明 | |
|---|---|---|---|---|
| currentValues | Object | × | Web サーバーによって報告されるカレントの使用量の値。 | |
| nbEntitySets | Integer | × | メモリ内のエンティティセットのカレントの数。 | |
| nbGuestSessions | Integer | × | Web サーバ上のアクティブなゲストセッションの数。 | |
| nbSessions | Integer | × | Web サーバー上のアクティブなセッションの数。 | |
| inBytesPerHour | Integer | ◯ | Web サーバーが1時間に受信できる最大の総バイト数。 | |
| inBytesPerHourPerSession | Integer | ◯ | Web サーバーがセッションに対して1時間に受信できる最大の総バイト数。 | |
| inBytesPerMin | Integer | ◯ | Web サーバーが1分間に受信できる総バイト数。 | |
| inBytesPerMinPerSession | Integer | ◯ | Web サーバーがセッションに対して1分間に受信できる最大の総バイト数。 | |
| nbEntitySetsPerSession | Integer | ◯ | 各REST セッションに対してメモリ内に保持できるエンティティセットの最大数。 | |
| nbGuestSessions | Integer | ◯ | Web サーバー上のアクティブなゲストセッションの最大総数。 | |
| nbRequestsPerHour | Integer | ◯ | Web サーバーが1時間に受け入れることのできる最大のリクエスト総数。 | |
| nbRequestsPerHourPerSession | Integer | ◯ | セッションが1時間に受け入れることのできる最大のリクエスト総数。 | |
| nbRequestsPerMin | Integer | ◯ | Web サーバーが1分間に受け入れることのできる最大のリクエスト総数。 | |
| nbRequestsPerMinPerSession | Integer | ◯ | セッションが1分間に受け入れることのできる最大のリクエスト総数。 | |
| nbSessions | Integer | ◯ | Web サーバー上のアクティブなセッションの最大総数。 | |
| outBytesPerHour | Integer | ◯ | Web サーバーが1時間に送信できる最大の総バイト数。 | |
| outBytesPerHourPerSession | Integer | ◯ | Web サーバーがセッションに対して1時間に送信できる最大の総バイト数。 | |
| outBytesPerMin | Integer | ◯ | Web サーバーが1分間に送信できる最大の総バイト数。 | |
| outBytesPerMinPerSession | Integer | ◯ | Web サーバーがセッションに対して1分間に送信できる最大の総バイト数。 |
例題
クォータを、サーバーグローバルとセッションデフォルトのレベルで設定します:
var $quotas : Object
var $webServer : Object:=WEB Server
$quotas:={}
$quotas.inBytesPerMin:=20000000
$quotas.outBytesPerMinPerSession:=10000000
$quotas.nbSessions:=50
$quotas.nbGuestSessions:=10
$quotas.nbRequestsPerMin:=500
$quotas.nbRequestsPerHour:=20000
// サーバーグローバルクォータ
$webServer.quotas.inBytesPerMin:=$quotas.inBytesPerMin
$webServer.quotas.nbSessions:=$quotas.nbSessions
$webServer.quotas.nbGuestSessions:=$quotas.nbGuestSessions
$webServer.quotas.nbRequestsPerMin:=$quotas.nbRequestsPerMin
$webServer.quotas.nbRequestsPerHour:=$quotas.nbRequestsPerHour
// セッションデフォルトクォータ
$webServer.quotas.outBytesPerMinPerSession:=$quotas.outBytesPerMinPerSession
参照
.rootFolder
.rootFolder : Text
Webサーバーのルートフォルダーのパス。パスは、ファイルシステムを使用した POSIXフルパスの形式です。 settings 引数内でこのプロパティを使用する場合、Folder オブジェクトも使用可能です。
.rules
履歴
| リリース | 内容 |
|---|---|
| 21 | 追加 |
.rules : Collection
読み取り専用プロパティ
HTTP ヘッダーをカスタマイズするために現在管理されているルールオブジェクトのコレクション。ルールオブジェクトには"regexPattern" プロパティに加え、アクション名と値が格納されています。 HTTP ルールはHTTPRules.json ファイルまたは.start() 関数のsettings 引数で定義することができます。詳細についてはHTTP ルール のページを参照してください。
.scalableSession
.scalableSession : Boolean
Webサーバーがスケーラブルセッションを使用している場合に true、それ以外は false。
参照
.sessionCookieDomain
.sessionCookieDomain : Text
セッションcookie の "path" フィールド。セッションcookie のスコープを制御するのに使用されます。たとえば、このセレクターに "/*.4d.fr" の値を設定した場合、リクエストの宛先が ".4d.fr" のドメインに限り、クライアントは cookie を送信します。つまり、外部の静的データをホストするサーバーは除外されます。
.sessionCookieName
.sessionCookieName : Text
セッションID の保存に使用されるセッションcookie の名称。
読み取り専用プロパティ
.sessionCookiePath
.sessionCookiePath : Text
セッションcookie の "path" フィールド。セッションcookie のスコープを制御するのに使用されます。たとえば、このセレクターに "/4DACTION" という値を設定した場合、4DACTION で始まる動的リクエストの場合にのみクライアントは cookie を送信し、ピクチャーや静的ページへのリクエストは除外されます。
.sessionCookieSameSite
履歴
| リリース | 内容 |
|---|---|
| 19 | 追加 |
.sessionCookieSameSite : Text
セッションcookie の "SameSite" 属性の値。とりうる値 (定数使用):
| 定数 | 値 | 説明 |
|---|---|---|
| Web SameSite Strict | "Strict" | デフォルト値 - ファーストパーティのコンテキストでのみ cookie が送信されます。 |
| Web SameSite Lax | "Lax" | サイト間のサブリクエストにおいても cookie が送信されますが、ユーザーがリンクを辿って大元のサイトに戻る場合に限ります。 |
| Web SameSite None | "None" | ファーストパーティやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 |
詳細については Session Cookie SameSite の説明を参照ください。
.sessionIPAddressValidation
.sessionIPAddressValidation : Boolean
スケーラブルセッションモード の場合には、このプロパティは使用されません (IPアドレスを検証しません)。
セッションcookie の IP アドレス検証。セキュリティ上の理由により、セッションcookie を持つ各リクエストに対して Webサーバーはデフォルトで IPアドレスを検証します。アプリケーションによっては、この検証機能を無効化し、IPアドレスが合致しなくてもセッションcookie を受け入れるようにしたいかもしれません。たとえば、モバイルデバイスが WiFi と 3G/4G ネットワークを切り替えた場合、IPアドレスが変更されます。このように IPアドレスが変更しても、クライアントによる Webセッションの継続を許可できます (アプリケーションのセキュリティレベルは下がります)。
.start()
履歴
| リリース | 内容 |
|---|---|
| 21 R5 | settings 引数内でのクォータのサポート |
| 18 R3 | 追加 |
.start() : Object
.start( settings : Object ) : Object
| 引数 | 型 | 説明 | |
|---|---|---|---|
| settings | Object | -> | 開始時の Webサーバー設定 |
| 戻り値 | Object | <- | Webサーバー開始のステータス |
.start() 関数は、任意の settings オブジェクト引数に設定したプロパティを使用して、対象の Webサーバーを開始させます。
プロジェクトの設定ファイルに定義されているデフォルトの設定、または WEB SET OPTION コマンドで定義された設定 (ホストデータベースのみ) を使用して、Webサーバーは開始されます。しかし、settings 引数を渡せば、Webサーバーセッションにおいてカスタマイズされた設定を定義することができます。
Web Server オブジェクト の設定は、読み取り専用プロパティ (.isRunning, .name、 .openSSLVersion、 .perfectForwardSecrecy、および .sessionCookieName) を除いて、すべてカスタマイズ可能です。
クォータは、settings 引数のquotas プロパティを使用して設定できるほか、メインWeb サーバーに対しては、HTTPQuotas.json ファイルを使用することで設定することもできます。 settings.quotas が渡された場合、HTTPQuotas.json は無視されます。
カスタマイズされた設定は .stop() が呼び出されたときにリセットされます。
返されるオブジェクト
関数は Webサーバーの開始ステータスを表すオブジェクトを返します。このオブジェクトには、次のプロパティが格納されることがあります:
| プロパティ | 型 | 説明 | |
|---|---|---|---|
| success | Boolean | Webサーバーが正常に開始された場合には true、それ以外は false | |
| errors | Collection | エラースタック (Webサーバーが正常に開始された場合には返されません) | |
| [].errCode | Number | 4Dエラーコード | |
| [].message | Text | 4Dエラーの詳細 | |
| [].componentSignature | Text | エラーを返した内部コンポーネントの署名 |
Webサーバーが既に起動していた場合、エラーが返されます。
例題 1
以下のコードを実行すると、カスタマイズされた設定でWeb サーバーを起動します:
var $result : Object
var $quotas:={}
$quotas.inBytesPerMin:=20000000
$quotas.outBytesPerMinPerSession:=10000000
var $settings:={HTTPPort:8080;defaultHomepage:"myAdminHomepage.html"; quotas: $quotas }
var $webServer:=WEB Server
$result:=$webServer.start($settings)
If($result.success)
//...
End if
.stop()
履歴
| リリース | 内容 |
|---|---|
| 18 R3 | 追加 |
.stop()
| 引数 | 型 | 説明 | |
|---|---|---|---|
| 引数を必要としません |
.stop() 関数は、対象の Webサーバーを停止します。
Webサーバーが開始されている場合は、処理中のリクエストが完了次第、すべての Web接続と Webプロセスが閉じられます。 Webサーバーが開始されていなかった場合、関数はなにもしません。
この関数は、
.start()関数の settings 引数を使用してセッションに対して定義したカスタマイズされた Web設定があった場合、それらをリセットします。
例題
データベースWebサーバーを停止します:
var $webServer : 4D.WebServer
$webServer:=WEB Server(Web server database)
$webServer.stop()