コンテンツにスキップ

1.1.1.1へのAPIリクエストを作成する

Cloudflareは次のDNS over HTTPSリゾルバを提供しています:

https://cloudflare-dns.com/dns-query

HTTPメソッド

CloudflareのDNS-over-HTTPS(DOH)エンドポイントは、DNSワイヤフォーマットに対してPOSTおよびGETを、JSONフォーマットに対してGETをサポートしています。

POSTを使用してリクエストを行う場合、DNSクエリはHTTPリクエストのメッセージボディに含まれ、MIMEタイプ(application/dns-message)はContent-Typeリクエストヘッダーに送信されます。Cloudflareはクライアントによって送信されたHTTPリクエストのメッセージボディを使用するため、メッセージボディはエンコードしないでください。

GETを使用してリクエストを行う場合、DNSクエリはURLにエンコードされます。

有効なMIMEタイプ

JSONフォーマットを使用する場合はapplication/dns-jsonを設定し、DNSワイヤフォーマットを使用する場合はapplication/dns-messageを使用します。

cURLの例については、DNSワイヤフォーマットおよびJSONを参照してください。

クエリで複数の質問を送信する

リクエストを行う際に複数の質問を送信することは、使用されるHTTPバージョンに依存します。各DNSクエリは正確に1つのHTTPリクエストにマッピングされます。HTTP/2およびHTTP/3はマルチプレクシングをサポートしており、複数のリクエストを同時に開始できます。実際、HTTP/2はDNS over HTTPS(DoH)で使用するための最小推奨HTTPバージョンです。これは1.1.1.1に特有のものではなく、DoHの動作方法に関するものです。

DoHの動作についてはRFC 8484で詳しく学ぶことができ、特にHTTPレイヤーの要件を参照してください。

リクエストの例:

Terminal window
curl --http2 --header "accept: application/dns-json" "https://1.1.1.1/dns-query?name=cloudflare.com" --next --http2 --header "accept: application/dns-json" "https://1.1.1.1/dns-query?name=example.com"

認証

このAPIにリクエストを送信するために認証は必要ありません。

サポートされているTLSバージョン

CloudflareのDNS over HTTPSリゾルバはTLS 1.2およびTLS 1.3をサポートしています。

戻りコード

HTTPステータス意味
400DNSクエリが指定されていないか、サイズが小さすぎます。
413DNSクエリが最大許容DNSメッセージサイズを超えています。
415サポートされていないコンテンツタイプです。
504クエリ応答を待っている間にリゾルバがタイムアウトしました。