メインコンテンツまでスキップ
バージョン: 開発中

WEB SET OPTION

WEB SET OPTION ( selector ; value )

引数説明
selectorIntegerオプションコード
valueInteger, Text, Collectionオプション値

説明

WEB SET OPTIONコマンドは4D Webサーバーの機能に関する様々なオプションのカレントの値を変更します。

これらのオプションの変更は、4D Web サーバーが停止されて再開された場合には保持されますが、4D アプリケーションが停止されて再開された場合には保持されません

selector 引数にはWeb Serverテーマの定数のうちひとつを指定し、value に新しい設定値を渡します:

定数コメント
Web character set倍長整数17スコープ: 4D ローカル, 4D Server
説明: データベースに接続するブラウザーとの通信に (ローカルモード4Dと4D Serverの) Webサーバーが使用する文字セット。デフォルト値はOSの言語に依存します。この引数はデータベース設定でも設定できます。
: 取りうる値は、文字セットに関連するデータベースの動作モードによります。
Unicode モード: アプリケーションがUnicodeモードで動作している場合、この引数に渡す値は文字セット識別子です。 (MIBEnum倍長整数または文字列。以下のアドレスを参照: http://www.iana.org/assignments/character-sets)。 以下は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注: IANAに定義されていない特別な文字セット (1258=x-mac-japanese) を使用することができます。これはWindows上ではコードページ10001に、Mac上ではkTextEncodingMacJapaneseにマップされています。 ASCII 互換モード:
0: Western European
1: Japanese
2: Chinese
3: Korean
4: User-defined
5: Reserved
6: Central European
7: Cyrillic
8: Arabic
9: Greek
10: Hebrew
11: Turkish
12: Baltic
Web Client IP address to listen倍長整数23スコープ: 4Dリモートマシン
とりうる値: Web IP address to listen参照
説明: Webサーバーとして使用するリモート4Dのパラメーターを指定するのに使用します(リモートのWeb サーバーに対してのみ適用されます)。
Web CORS enabled倍長整数92スコープ: ローカルWeb サーバー
詳細: Web サーバーのCORS (Cross-origin resource sharing) サービスステータス。有効化されていれば、アプリケーション内においてドメイン外のWeb ページからのXHR(例: REST) 呼び出しが許可されます(注: CORS サービスを使用することができるアドレスとメソッドの一覧も定義されている必要があります、Web CORS settings参照)。CORS サービスが無効化されている場合、CORS リクエストは無視されます。CORS サービスが有効化されていて、許可されていないドメインまたはメソッドからクロスサイトリクエストが送られてきた場合、そのリクエストは"403 - forbidden" エラーが返され接続は拒否されます。 取りうる値: 0 (無効化、デフォルト) または1 (有効化)
Web CORS settings倍長整数93スコープ: ローカルWeb サーバー
詳細: CORS サービスで許可されているホストとメソッドの一覧
取りうる値: 以下のプロパティを持つCORS オブジェクトのコレクション:
プロパティ詳細
[ ].hostテキスト必須 -- host プロパティが存在しないか空の場合、そのオブジェクトは無視されます。
CORS 経由でサーバーにデータリクエストを送ることが許可されている外部ページのドメイン名またはIPアドレス。複数のドメイン属性を追加することでホワイトリストを作成することができます。いくつかのシンタックスがサポートされます:
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 host で受け付けられるHTTP メソッド。それぞれのメソッドはメソッドは";" で区切られます(例: "post;get")
methods プロパティが空か、nullか、未定義の場合、全てのメソッドが受け入れられます。
Web debug log倍長整数84スコープ: ローカルWebサーバー
説明: 4D WebサーバーのHTTPリクエストログファイルの状態を設定または取得できるようにします。有効化された場合、"HTTPDebugLog_nn.txt"と命名されたこのファイルはアプリケーションの”Logs”フォルダに保存されます(nn にはファイル番号が入ります)。これはWebサーバーに関連した問題をデバッグするのに有用です。リクエストとレスポンスをrawモードで記録するからです。ヘッダーも含めて、リクエスト全体が記録されます。オプションとして、ボディ部分も記録することができます。HTTPDebugLog ファイルについての詳細な情報については、ログファイルの詳細 の章を参照してください。
値: "wdl"の接頭辞が付いた定数のどれか一つ(このテーマ内のこれらの定数の詳細を参照して下さい)
デフォルト値: 0 (有効化しない)
Web HSTS enabled倍長整数86スコープ: 4D ローカル、4D Server
詳細: HTTP Strict Transport Security (HSTS)ステータス。HSTS によって、4D Web サーバーはブラウザに対して、通信を安全なHTTPS経由で接続しなければならないということを宣言することができます。一度有効化すると、4D Web サーバーは自動的にHSTS関連の情報を全てのレスポンスヘッダーに追加します。ブラウザは最初に4D Web サーバーからのレスポンスを受け取ったときにHSTS 情報を記録し、それ以降のHTTP リクエストは自動的にHTTPS リクエストへと変換されます。この情報がブラウザに保存されている時間の長さは、Web HSTS max age セレクターによって指定されます。
HSTS を使用するためにはHTTPS がサーバー側で有効化されている必要があります。またクライアントの初回の通信のために、HTTP も有効化されている必要があります。
取りうる値: 0 (無効化、デフォルト) あるいは 1 (有効化)
注: この設定を適用するためには4D Web サーバーを再起動する必要があります。
Web HSTS max age倍長整数87スコープ: 4D ローカル、4D Server
詳細: HSTS がクライアントからのそれぞれの新しい接続に対してHSTS が有効化されている最大の時間の長さを(秒単位で)指定します。この情報は指定された期間の間クライアント側に保存されます。
取りうる値: 倍超整数(秒)
デフォルトの値: 63072000 (2年)

警告: 一度HSTS が有効化されると、クライアント接続は指定された期間、この機構を使い続けます。アプリケーションのテスト時には、安全な接続と安全でない接続のモードの切り替えをする必要がある場合に備えて、短い時間を設定しておくことが推奨されます。
Web HTTP compression level倍長整数50スコープ: ローカルWebサーバー
説明: 4D HTTPサーバーで使用されるすべての圧縮されたHTTP通信 (クライアントのリクエスト、サーバーのレスポンス、WebおよびWebサービス) の圧縮レベル。このセレクターを使用すれば圧縮率を犠牲にして実行速度を速めるか、速度を優先して圧縮率を高めるかを選択できます。値の選択は交換するデータのサイズやタイプに基づきます。value引数に1から9までの値を渡します。1は速度優先、9は圧縮率優先です。また-1を渡して圧縮速度と圧縮率の妥協点を指定できます。デフォルトの圧縮レベルは1 (速度優先) です。
とりうる値: 1 から 9 (1 = 速度優先, 9 = 圧縮優先) または -1 = 最適
Web HTTP compression threshold倍長整数51スコープ: ローカルHTTPサーバー
説明: 最適化モードの内部的な4D Webサービス通信フレームワークにおいて、圧縮を行わないリクエストサイズの敷居値を設定できます。この設定は、小さなデータ交換時に圧縮を行うことによる、マシンの時間の浪費を避けるために有効です。
とりうる値: 任意の倍長整数値。valueにはバイト単位でサイズを渡します。デフォルトで、圧縮の敷居値は1024バイトに設定されています。
Web HTTP enabled倍長整数88スコープ: 4D ローカル、4D Server
詳細: HTTP 経由の通信のステータス
取りうる値: 0 (無効化) あるいは 1 (有効化)
Web HTTP TRACE倍長整数85スコープ: ローカルWebサーバー
異なるセッション間で値を保持: No
詳細: 4D Web サーバー内のHTTP TRACEメソッドを無効化または有効化します。セキュリティ上の理由から、4D v15 R2以降、デフォルトで4D WebサーバーはHTTP TRACEリクエストをエラー405で拒否します(HTTP TRACEの無効化を参照して下さい)。必要であれば、この定数に値1を渡す事でそのセッションの間HTTP TRACEメソッドを有効化する事ができます。このオプションが有効化されると、4D WebサーバーはHTTP TRACEリクエストに対してリクエストライン、ヘッダー、そしてボディーを返信します。
取り得る値: 0 (無効化) または 1 (有効化)
デフォルトの値: 0 (無効化)
Web HTTPS enabled倍長整数89スコープ: 4D ローカル、4D Server
詳細: HTTPS 経由の通信のステータス
取りうる値: 0 (無効化) あるいは 1 (有効化)
Web HTTPS port ID倍長整数39スコープ:4D ローカル, 4D Server
説明: ローカルモード4Dおよび4D ServerのWebサーバがTLSによるセキュアな接続(HTTPSプロトコル)で使用するTCP ポート番号。HTTPS ポート番号はデータベース設定の"Web/設定"ページで指定できます。デフォルト値は443 (標準ポート番号) です。value引数にTCP Port Numbersテーマの定数を渡すこともできます。
とりうる値: 0~65535
Web inactive process timeout倍長整数78互換性に関する注意: このセレクターはWeb scalable session モード、あるいは"セッションなし"モードが有効化されている場合には無視されます。
スコープ**: ローカルWebサーバー
説明: セッション管理のために使用されるプロセスのタイムアウトを設定します。タイムアウト後、プロセスは終了されます。
取りうる値: 倍長整数 (分)
デフォルト値: 480分 (= 8時間) (0を渡すとデフォルト値に設定されます)
Web inactive session timeout倍長整数72互換性に関する注意: このセレクターはWeb scalable session モードが有効化されている場合には無視されます。****
スコープ
: ローカルWebサーバー
説明: セッション管理のために使用されるcookieのタイムアウトを設定します。
取りうる値: 倍長整数 (分)
デフォルト値: 480分 (= 8時間) (0を渡すとデフォルト値に設定されます)
Web IP address to listen倍長整数16スコープ: 4D ローカル, 4D Server
説明: ローカルモード4Dおよび4D ServerのWebサーバがHTTPリクエストを受信するIPアドレス。デフォルトで、特定のアドレスは定義されていません。この引数はデータベース設定で設定できます。このセレクターはコンパイルして4D Volume Desktopを組み込んだ4D Webサーバで役立ちます(この場合デザインモードへのアクセス手段がないからです)。
取りうる値: IP アドレスの文字列。IPv6 文字列フォーマット(例: "2001:0db8:0000:0000:0000:ff00:0042:8329")とIPv4 文字列フォーマット(例: "123.45.67.89")の両方がサポートされます。
注: 互換性上の理由から、16進数の倍長整数で表現された廃止予定IPv4 アドレスは引き続きサポートされます。
Web legacy session倍長整数70スコープ: ローカルWebサーバー
説明: 旧式のセッション管理モード(Webセッション管理(旧式) の章で説明されている)を有効化または無効化します。またこのモードはリモートモードで一時的なコンテキストの再利用メカニズムも有効にする点に留意してください。このメカニズムに関する詳細はWebサーバー設定を参照してください。
取りうる値: 1 (有効) / 0 (無効)
関連項目: Web scalable session セレクターも参照してください。
Web log recording倍長整数29スコープ:4D ローカル, 4D Server
説明: ローカルモード4Dまたは4D ServerのWebサーバーが受け取るWebリクエストの記録を開始または停止します。デフォルト値は0(リクエストを記録しない)です。

Web リクエストのログは"logweb.txt"という名前のテキストファイルに保存されます。このファイルは自動でストラクチャファイルと同階層のLogsフォ ルダー内に作成されます。このファイルのフォーマットは、渡した値により決定されます。Webログファイルフォーマットに関する詳細はWebサイトに関する情報を参照してください。

このファイルはデータベース設定の"Web/ログ"ページからも有効にできます。
とりうる値: 0 = 記録しない (デフォルト), 1 = CLFフォーマットで記録, 2 = DLFフォーマットで記録, 3 = ELFフォーマットで記録, 4 = WLFフォーマットで記録
警告: フォーマット3および4はカスタムフォーマットであり、記録する内容を事前にデータベース設定で定義しなければなりません。事前定義せずにこれらのフォーマットを使用した場合、ログファイルは作成されません。

Web max concurrent processes倍長整数18互換性に関する注意: このセレクターはWeb scalable session モードが有効化されている場合には無視されます。
スコープ: 4D ローカル, 4D Server
説明: ローカルモード4Dならびに4D ServerのWebサーバーでサポートされる、任意のタイプの同時Webプロセス上限数を厳密に設定。この上限数(マイナス1)に達した場合、4Dはそれ以上プロセスを作成しなくなり、HTTPステータス503(Service Unavailable)をすべての新しいリクエストに返します。
このパラメーターにより、同時に行われる非常に膨大な数のリクエストやコンテキスト作成に関する過大な要求の結果として、4D Webサーバが飽和状態になることを防ぐことができます。このパラメーターはデータベース設定でも設定できます。
理論上、Webプロセスの最大数は次の計算式の結果になります: 使用可能メモリ/Webプロセスのスタックサイズ。別の解決策は、ランタイムエクスプローラに表示されるWebプロセス情報を監視する方法です。つまり現在のWebプロセス数およびWebサーバの開始以降に達した最大数を監視します。
: 10から32 000までの任意の数。デフォルト値は100。
Web max sessions倍長整数71スコープ: ローカルWebサーバー
説明: 4Dの自動セッション管理下のセッション上限数。設定した上限に達すると、もっとも古いセッションが閉じられます。
取りうる値: 倍長整数値
デフォルト値: 100 (0を渡すとデフォルト値が設定されます)
Web maximum requests size倍長整数27スコープ: 4D ローカル, 4D Server 説明: Webサーバに処理を許可する受信HTTPリクエスト (POST) の最大サイズ (バイト単位)。デフォルト値は2,000,000 (2MBより少し少ない値) です。最大値(2,147,483,647)を渡すと、実際上は制限がなくなります。

この制限は、受信するリクエストが大きすぎるためにWebサービスが飽和してしまうことを回避するために使用します。リクエストがこの制限に達すると、4D Webサービスはリクエストを拒否します。
とりうる値: 500,000~2,147,483,647
Web port ID倍長整数15スコープ: 4D ローカル, 4D Server.
説明: ローカルモードの4Dと4D Serverで、4D Web server が使用するTCPポート番号を設定または取得します。デフォルトではこの値は80です。TCPポート番号は、データベース設定の"Web/設定"タブ内にて設定できます。value p引数には、TCP Port Numbers テーマ内にある定数の一つを使用することができます。このセレクターは、4D Desktop を使用して組み込み・コンパイルされた4D Web Server フレームワーク内(デザイン環境へのアクセスがない状態)において有用です。
取り得る値: TCPポート番号についての詳細な情報に関しては、 Webサーバー設定 セクションを参照して下さい。
デフォルトの値: 80
Web scalable session倍長整数90スコープ: ローカルWeb サーバー
詳細: スケーラブルセッション管理モードを有効化または無効化します(詳細はdeveloper.4d.comthe User sessions page にあります)。
取りうる値: 1 (モード有効化) または 0 (モード無効化)。値が編集された場合、変更が有効化されるためにはWeb サーバーを再起動する必要があります。
このモードが有効化されている場合、以下のオプションは無視されます: Web inactive process timeout、Web max concurrent processes、Web session cookie name、およびWeb inactive session timeout
Web session cookie domain倍長整数81スコープ: ローカルWeb server
説明: セッションCookieの"ドメイン"フィールドの値を設定または取得します。このセレクター(とセレクター82)は、セッションCookieのスコープを管理するのに有用です。例えば、このセレクターに、 "/*.4d.fr" という値を設定した場合、クライアントは、リクエストが ".4d.fr" のドメイン宛てだった場合にのみCookieを送ります。これにより、外部の静的なデータをホストするサーバーを除外することができます。
取り得る値: テキスト
Web session cookie name倍長整数73互換性に関する注意: このセレクターはWeb scalable session モードが有効化されている場合には無視されます**。
スコープ**: ローカルWebサーバー
説明: 旧式セッションIDを保存するのに使用されるcoolie の名前を設定。
取りうる値: テキスト
デフォルト値: "4DSID_AppName" (空文字を渡すとデフォルト値が設定されます。)
Web session cookie path倍長整数82スコープ: ローカル Web server
説明: セッションCookieの"パス"フィールドの値を設定・または取得します。このセレクター(とセレクター81)は、セッションCookieのスコープを管理するのに有用です。例えば、このセレクターに"/4DACTION"という値を設定した場合、クライアントは、4DACTION から始まる動的なリクエストに対してのみCookieを送り、ピクチャやスタティックなページ等に対しては送りません。
取り得る値: テキスト
Web session enable IP address validation倍長整数83スコープ: ローカルWebサーバー**
** 説明: セッションcookieに対するIPアドレス認証を有効化・または無効化します。セキュリティ上の理由から、4D Webサーバーはセッションcookieを含んでいるそれぞれのリクエストのIPアドレスをデフォルトでチェックし、そのアドレスが、cookieを作成するのに使用されたIPアドレスと異なる場合にはリクエストを拒否します。一部の特定のアプリケーションにおいては、この認証を無効化して、IPアドレスが合致しないcookieも受け入れたい場合があるかもしれません。例えばWifiと3G/4Gネットワークを切り替えるモバイルデバイスでは、IPアドレスは合致しません。この場合、このオプションに0を渡してIPアドレスが変わった時でもクライアントがWebセッションを引き続き利用できるようにします。ただしこの設定はアプリケーションのセキュリティレベルを下げることになることに注意して下さい。
これが変更された際には、その設定は直ちに反映されます(HTTPサーバーを再起動する必要はありません)。
とり得る値: 0(無効化)または1(有効化)
デフォルト値: 1 (IP アドレスはチェックされます)

selector引数にWeb debug logを使用する場合、value引数に以下の定数のうちどれか一つを渡す事ができます:

定数コメント
wdl disable web log倍長整数0Web HTTP debug log は無効化されています
wdl enable with all body parts倍長整数7Web HTTP debug log はレスポンスとリクエスト両方をボディー部に含めた状態で有効化されます
wdl enable with request body倍長整数5Web HTTP debug log はリクエストのボディー部のみ含めた状態で有効化されます
wdl enable with response body倍長整数3Web HTTP debug log はレスポンスのボディー部のみを含めた状態で有効化されています。
wdl enable without body倍長整数1Web HTTP debug log はボディ部なしで有効化されています(この場合ボディ部のサイズは提供されます)

例題

HTTP デバッグログをボディ部分なしで有効化する場合を考えます:

 WEB SET OPTION(Web debug log;wdl enable without body)

ログエントリーは次のようになります:

# REQUEST
# SocketID: 1592
# PeerIP: 127.0.0.1
# PeerPort: 54912
# TimeStamp: 39089388
#ConnectionID: 9808E3B4B06E4EB5A60E9A3FC69116BD
#SequenceNumber:5
GET /4DWEBTEST HTTP/1.1
Accept: text/html,(...)
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: 127.0.0.1
User-Agent: 4D_HTTP_Client/0.0.0.0

# RESPONSE
# SocketID: 1592
# PeerIP: 127.0.0.1
# PeerPort: 54912
# TimeStamp: 39089389 (elapsed time: 1 ms)
#ConnectionID: 9808E3B4B06E4EB5A60E9A3FC69116BD
#SequenceNumber:6
HTTP/1.1 200 OK
Accept-Ranges: bytes
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 3555
Content-Type: text/plain; charset=UTF-8
Date: Thu, 20 Apr 2017 10:51:29 GMT
Expires: Thu, 20 Apr 2017 10:51:29 GMT
Server: 4D/16.0.1

[Body Size: 3555]

参照

WEB GET OPTION
WEB LEGACY GET SESSION EXPIRATION

プロパティ

コマンド番号5
スレッドセーフである