Skip to main content

Appendix A. Protocol Development (协议开发)

本协议的早期版本使用了不同的媒体类型和URI结构。当前的设计是基于实施经验和来自IETF社区的反馈发展而来的。

最初的提案考虑使用专门的URI方案 (例如"dns-over-https:") 而不是标准的"https:" URI。然而,决定使用标准的"https:" URI以便与现有的HTTP基础设施更好地集成,并使DoH流量更难与普通HTTPS流量区分开来。

媒体类型的选择也经过了几次迭代。"application/dns-message"媒体类型被选择来明确表示内容是DNS Wire Format消息。考虑了其他格式,包括JSON,但决定使用DNS Wire Format作为默认格式,因为它与现有的DNS基础设施兼容,并且更高效。

URI模板机制是为了提供灵活性而添加的,允许DoH服务器使用不同的URI路径,同时仍然保持与协议的兼容性。这也使得将来可以轻松添加新的参数和功能。

POST和GET方法都被包括在内,以支持不同的用例。POST方法通常更高效,因为它避免了base64编码的开销,但GET方法对HTTP缓存更友好,并且在某些环境中可能更容易实施。

HTTP/2支持被认为是重要的,因为它提供了多路复用和其他性能优势。虽然HTTP/1.1也可以使用,但强烈建议使用HTTP/2或更高版本以获得最佳性能。

安全和隐私考虑在整个开发过程中都是主要关注点。要求使用HTTPS和服务器身份验证是为了防止被动攻击和某些类型的主动攻击。然而,也认识到DoH不能解决所有的安全和隐私问题,特别是与DoH服务器本身相关的问题。

本协议的开发涉及来自DNS、HTTP和安全社区的贡献者的广泛合作。这种跨社区的合作对于确保协议满足所有相关方的需求至关重要。