【问题标题】:What happens if a DNS over HTTPS server responds with status 5xx or 4xx on iOS?如果基于 HTTPS 的 DNS 服务器在 iOS 上响应状态为 5xx 或 4xx 会发生什么?
【发布时间】:2021-11-20 15:47:00
【问题描述】:

看着这个examplemobileconfig,我试图找出如果 DoH 服务器在响应 iOS 上的 DoH 查询时响应状态为 4xx 或 5xx 会发生什么。例如,如果 NGINX 损坏或出于任何原因,DoH 服务器会以 200 以外的任何状态响应。DNS 请求是否完全失败,我会在 Safari 中收到错误消息? iOS 设备会自动尝试其他 DNS 吗?

【问题讨论】:

    标签: ios dns doh dns-over-https


    【解决方案1】:

    规范很清楚,见RFC 8484 " DNS Queries over HTTPS (DoH)", section 4.2.1 "Handling DNS and HTTP Errors"

    具有不成功 HTTP 状态代码的 HTTP 响应不包含 回复 HTTP 请求中的原始 DNS 问题。卫生部 不成功的客户端需要使用相同的语义处理 与其他 HTTP 客户端一样的 HTTP 状态代码。这可能意味着 DoH 客户端使用同一个 DoH 服务器重试查询,例如如果 存在授权失败(HTTP 状态代码 401;请参阅 [RFC7235] 的第 3.1 节)。这也可能意味着 DoH 客户端 使用不同的 DoH 服务器重试,例如不支持的媒体 类型(HTTP 状态码 415;参见 [RFC7231] 的第 6.5.13 节),或 服务器无法生成适合于 客户端(HTTP 状态码 406;参见 [RFC7231] 的第 6.5.6 节),等等 开。

    那么确切的行为显然取决于所使用的客户端,但这意味着这里的问题并不是真正的主题,因为与编程无关。

    【讨论】:

      猜你喜欢
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-04
      • 2012-10-02
      • 2014-02-03
      • 2013-06-01
      • 2022-10-13
      相关资源
      最近更新 更多