HTTPリクエストレスポンスフィールド
Cloudflareルール言語は、これらのHTTPレスポンスフィールドをサポートしています。
http.response.code Integer
クライアントに返されるHTTPステータスコードを表します。これはCloudflare製品によって設定されるか、オリジンサーバーによって返されます。
例の値:
403
http.response.headers Map<Array<String>>
HTTPレスポンスヘッダーをMap(または連想配列)として表します。
繰り返しヘッダーがある場合、配列はレスポンスに表示される順序でそれらを含みます。キーは小文字に変換されます。
- デコーディング: デコーディングは行われません
- 空白: 保存されます
- 非ASCII: 保存されます
例:
any(http.response.headers["server"][*] == "nginx")例の値:
{"server": ["nginx"]}HTTPレスポンス内のヘッダーの名前を表します。名前は事前処理されず、レスポンスで使用された元のケースを保持します。
ヘッダー名の順序は保証されませんが、http.response.headers.valuesと一致します。
重複するヘッダーは複数回リストされます。
- デコーディング: デコーディングは行われません
- 空白: 保存されます
- 非ASCII: 保存されます
例:
any(http.response.headers.names[*] == "content-type")例の値: ["content-type"]
HTTPレスポンス内のヘッダーの値を表します。
値は事前処理されず、レスポンスで使用された元のケースを保持します。
ヘッダー値の順序は保証されませんが、http.response.headers.namesと一致します。
重複するヘッダーは複数回リストされます。
- デコーディング: デコーディングは行われません
- 空白: 保存されます
- 非ASCII: 保存されます
例 1:
any(http.response.headers.values[*] == "application/json")例の値 1: ["application/json"]
指定された演算子およびヘッダー値に入力された長さ/サイズに従ってレスポンスを一致させるためにも使用されます。
例 2:
any(len(http.response.headers.values[*])[*] gt 10)例の値 2:
["このヘッダーの値は10バイトより長い"]
http.response.content_type.media_type String
レスポンスのContent-Typeヘッダーに基づいて、パラメータ(charsetなど)なしで小文字化されたコンテンツタイプ(サブタイプおよびサフィックスを含む)を表します。
例の値
Content-Typeヘッダー | フィールド値 |
|---|---|
text/html | ”text/html” |
text/html; charset=utf-8 | ”text/html” |
text/html+extra | ”text/html+extra” |
text/html+extra; charset=utf-8 | ”text/html+extra” |
text/HTML | ”text/html” |
text/html; charset=utf-8; other=value | ”text/html” |
cf.response.1xxx_code Integer
1xxx Cloudflareエラーの特定のコードを含みます。このフィールドを使用して、同じHTTPステータスコードに関連する1xxxエラーを区別します。デフォルト値は0です。1xxxエラーのリストについては、Cloudflare 1XXXエラーのトラブルシューティングを参照してください。
例の値:
1020
cf.response.error_type String
返されるレスポンス内のエラーのタイプを含む文字列です。デフォルト値は空の文字列("")です。
利用可能な値は次のとおりです。
managed_challengeiuamlegacy_challengeip_banwaf5xx1xxxalways_onlinecountry_challengeratelimit
このフィールドを使用して、特定のタイプのエラー(たとえば、すべての1xxxエラーまたはすべてのWAFブロックアクション)に対してレスポンスをカスタマイズできます。