JSONの使用
CloudflareのDNS over HTTPSエンドポイントは、DNSデータをクエリするためのJSON形式もサポートしています。インターネット技術者タスクフォース(IETF)においてDNS over HTTPSのための合意されたJSONスキーマがないため、CloudflareはGoogleのDNS over HTTPSリゾルバと同じスキーマに従うことを選択しました。
JSON形式のクエリは、GETリクエストを使用して送信されます。GETを使用してリクエストを行う際、DNSクエリはURLにエンコードされます。クライアントは、DNS over HTTPSリゾルバからのJSONレスポンスを受け入れることができることを示すために、MIMEタイプapplication/dns-jsonを持つHTTP Acceptリクエストヘッダーを含める必要があります。
| フィールド | 必須? | 説明 | デフォルト |
|---|---|---|---|
name | はい | クエリ名。 | - |
type | いいえ | クエリタイプ(数値またはテキスト ↗のいずれか)。 | A |
do | いいえ | DOビット - クライアントがDNSSECデータを要求するかどうか(空または0、false、1、trueのいずれか)。 | false |
cd | いいえ | CDビット - 検証を無効にする(空または0、false、1、trueのいずれか)。 | false |
リクエストとレスポンスの例:
curl --header "accept: application/dns-json" "https://cloudflare-dns.com/dns-query?name=example.com&type=AAAA"{ "Status": 0, "TC": false, "RD": true, "RA": true, "AD": true, "CD": false, "Question": [ { "name": "example.com.", "type": 28 } ], "Answer": [ { "name": "example.com.", "type": 28, "TTL": 1726, "data": "2606:2800:220:1:248:1893:25c8:1946" } ]}無効なリクエストの場合、400 Bad Requestエラーが返されます:
curl --header "accept: application/dns-json" "https://cloudflare-dns.com/dns-query?name=example.com&cd=2"{ "error": "無効なCDフラグ`2`。空または`0`、`false`、`1`、`true`のいずれかである必要があります。"}以下の表には、各レスポンスフィールドに関する詳細情報があります。
| フィールド | 説明 |
|---|---|
Status | DNSクエリのレスポンスコード。これらはここで定義されています: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6 ↗。 |
TC | trueの場合、切り捨てビットが設定されていることを意味します。これは、DNS応答が単一のUDPまたはTCPパケットよりも大きい場合に発生します。CloudflareのDNS over HTTPSでは、最大応答サイズをサポートしているため、TCはほぼ常にfalseです。 |
RD | trueの場合、再帰的要求ビットが設定されていることを意味します。これはCloudflareのDNS over HTTPSでは常にtrueに設定されています。 |
RA | trueの場合、再帰利用可能ビットが設定されていることを意味します。これはCloudflareのDNS over HTTPSでは常にtrueに設定されています。 |
AD | trueの場合、応答内のすべてのレコードがDNSSECで検証されたことを意味します。 |
CD | trueの場合、クライアントがDNSSEC検証を無効にするよう要求したことを意味します。この場合、CloudflareはDNSSEC関連のレコードを取得しますが、レコードの検証は行いません。 |
Question: name | 要求されたレコード名。 |
Question: type | 要求されたDNSレコードのタイプ。これらはここで定義されています: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4 ↗。 |
Answer: name | レコードの所有者。 |
Answer: type | DNSレコードのタイプ。これらはここで定義されています: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4 ↗。 |
Answer: TTL | 応答がキャッシュに保存できる秒数。これを超えると、応答は古くなったと見なされます。 |
Answer: data | 指定された名前とタイプのDNSレコードの値。データは標準化されたレコードタイプの場合はテキスト形式で、未知のタイプの場合は16進数形式になります。 |
Authority: name | レコードの所有者。 |
Authority: type | DNSレコードのタイプ。これらはここで定義されています: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4 ↗。 |
Authority: TTL | 応答がキャッシュに保存できる秒数。これを超えると、応答は古くなったと見なされます。 |
Authority: data | 指定された名前とタイプのDNSレコードの値。データは標準化されたレコードタイプの場合はテキスト形式で、未知のタイプの場合は16進数形式になります。 |
Additional: name | レコードの所有者。 |
Additional: type | DNSレコードのタイプ。これらはここで定義されています: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4 ↗。 |
Additional: TTL | 応答がキャッシュに保存できる秒数。これを超えると、応答は古くなったと見なされます。 |
Additional: data | 指定された名前とタイプのDNSレコードの値。データは標準化されたレコードタイプの場合はテキスト形式で、未知のタイプの場合は16進数形式になります。 |
Comment | EDEメッセージのリスト。詳細については、拡張DNSエラーコードを参照してください。 |
| フィールド | 説明 |
|---|---|
error | 発生したエラーの説明。 |