跳到主要内容

6. "application/dns-message" 媒体类型的定义

"application/dns-message" 媒体类型的数据负载是 DNS on-the-wire format 的单个消息, 该格式定义于 [RFC1035] 第 4.2.1 节, 而该节又引用了该 RFC 第 4.1 节中定义的完整 wire format.

虽然 [RFC1035] 说 "Messages carried by UDP are restricted to 512 bytes", 但这后来已由 [RFC6891] 更新. 此媒体类型将 DNS 消息的最大大小限制为 65535 字节.

注意, 此媒体类型中使用的 wire format 不同于 [RFC7858] 中使用的 wire format (后者使用 [RFC1035] 第 4.2.2 节中定义的格式, 其中包含两个长度字节).

使用此媒体类型的 DoH 客户端 MAY 在请求中包含一个或多个 Extension Mechanisms for DNS (EDNS) 选项 [RFC6891]. 使用此媒体类型的 DoH 服务器 MUST 忽略 DNS 请求中为 EDNS UDP payload size 给出的值.

使用 GET 方法时, 此媒体类型的数据负载 MUST 使用 base64url [RFC4648] 编码, 然后作为名为 "dns" 的变量提供给 URI Template 展开. base64url 的填充字符 MUST NOT 包含在内.

使用 POST 方法时, 此媒体类型的数据负载 MUST NOT 被编码, 并直接用作 HTTP 消息体.