← 1.1.1.1 (DNS-резолвер) / 1.1.1.1 / encryption / dns-over-https / make-api-requests
Использование JSON
Конечная точка Cloudflare DNS через HTTPS также поддерживает формат JSON для запросов DNS-данных. Поскольку в Internet Engineering Task Force (IETF) нет согласованной JSON-схемы для DNS через HTTPS, Cloudflare решила использовать ту же схему, что и резолвер DNS через HTTPS от Google.
Запросы в формате JSON отправляются с помощью GET-запрос. При отправке запросов с помощью GET, DNS-запрос кодируется в URL. Добавьте заголовок HTTP Accept заголовок запроса с MIME-типом application/dns-json, указывая, что клиент может принять ответ в формате JSON.
Поддерживаемые параметры
| Поле | Обязательно? | Описание | По умолчанию |
|---|---|---|---|
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": "Invalid CD flag `2`. Expected to be empty or one of `0`, `false`, `1`, or `true`."
}Поля ответа
В приведённых ниже таблицах можно найти подробности о каждом поле ответа.
Успешный ответ
| Поле | Описание |
|---|---|
Status |
Код ответа DNS-запроса. Коды определены здесь: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6 ↗. |
TC |
Если TC поле имеет значение true, это означает, что установлен флаг усечения. Это происходит, когда DNS-ответ превышает размер одного пакета UDP или TCP. При использовании Cloudflare DNS over HTTPS TC поле почти всегда имеет значение false, потому что Cloudflare поддерживает максимальный размер ответа. |
RD |
Если значение true, это означает, что был установлен бит Recursive Desired. Для Cloudflare DNS over HTTPS он всегда равен true. |
RA |
Если значение true, это означает, что был установлен бит Recursion Available. Для 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 для указанного имени и типа. Для стандартных типов записей данные представлены в текстовом виде, а для неизвестных типов в шестнадцатеричном. |
Authority: name |
Владелец записи. |
Authority: type |
Тип записи DNS. Типы определены здесь: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4 ↗. |
Authority: TTL |
Количество секунд, в течение которых ответ можно хранить в кэше до того, как он станет считаться устаревшим. |
Authority: data |
Значение записи DNS для указанного имени и типа. Для стандартных типов записей данные представлены в текстовом виде, а для неизвестных типов в шестнадцатеричном. |
Additional: name |
Владелец записи. |
Additional: type |
Тип записи DNS. Типы определены здесь: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4 ↗. |
Additional: TTL |
Количество секунд, в течение которых ответ можно хранить в кэше до того, как он станет считаться устаревшим. |
Additional: data |
Значение записи DNS для указанного имени и типа. Для стандартных типов записей данные представлены в текстовом виде, а для неизвестных типов в шестнадцатеричном. |
Comment |
Список сообщений EDE. См. Расширенные коды ошибок DNS, где это описано подробнее. |
Ответ с ошибкой
| Поле | Описание |
|---|---|
error |
Описание возникшей ошибки. |