Что произойдет, если сервер DNS через HTTPS ответит статусом 5xx или 4xx на iOS?

Глядя на этот пример mobileconfig, Я пытаюсь выяснить, что произойдет, если сервер DoH отвечает со статусом 4xx или 5xx в ответ на запрос DoH в iOS. Например, если NGINX сломан или по какой-либо причине, сервер DoH отвечает любым статусом, кроме 200. Полностью ли отказал DNS-запрос, и я получу сообщение об ошибке в Safari? Устройство iOS автоматически пробует другой DNS?

1 ответ

Спецификации достаточно понятны, см. RFC 8484 «Запросы DNS через HTTPS (DoH)», раздел 4.2.1 «Обработка ошибок DNS и HTTP» :

Ответы HTTP с неуспешными кодами состояния HTTP не содержат ответов на исходный вопрос DNS в запросе HTTP. Клиенты DoH должны использовать ту же семантическую обработку неуспешных кодов состояния HTTP, что и другие клиенты HTTP. Это может означать, что клиент DoH повторяет запрос с тем же сервером DoH, например, при сбоях авторизации (код состояния HTTP 401; см. раздел 3.1 [RFC7235]). Это также может означать, что клиент DoH повторяет попытку с другим сервером DoH, например, для неподдерживаемых типов мультимедиа (код состояния HTTP 415; см. раздел 6.5.13 [RFC7231]) или когда сервер не может создать представление, подходящее для клиента. (Код состояния HTTP 406; см. раздел 6.5.6 [RFC7231]) и так далее.

Тогда точное поведение будет зависеть от используемого клиента, очевидно, но это означает, что вопрос здесь не совсем по теме, поскольку не связан с программированием.

Другие вопросы по тегам