RFC 8820 - URI 设计和所有权 (URI Design and Ownership)
发布日期 (Published): 2020年6月
状态 (Status): 最佳当前实践 (Best Current Practice)
BCP: 190
废弃 (Obsoletes): RFC 7320
更新 (Updates): RFC 3986
作者 (Author): M. Nottingham
摘要 (Abstract)
RFC 3986 的 1.1.1 节将 URI 语法定义为"一个联合且可扩展的命名系统,其中每个方案的规范可以进一步限制使用该方案的标识符的语法和语义"。换句话说,URI 的结构由其方案定义。虽然方案通常会将其子结构进一步委托给 URI 的所有者,但发布强制规定 URI 中特定子结构形式的独立标准往往会产生问题。
本文档为标准中 URI 子结构的规范提供指导。
本文档废弃 RFC 7320 并更新 RFC 3986。
本备忘录的状态 (Status of This Memo)
本备忘录记录了互联网最佳当前实践。
本文档是互联网工程任务组 (IETF) 的产品。它代表了 IETF 社区的共识。它已经过公开审查,并已获得互联网工程指导组 (IESG) 的批准发布。有关 BCP 的更多信息,请参见 RFC 7841 的第 2 节。
有关本文档当前状态、任何勘误表以及如何提供反馈的信息,可从以下网址获取: https://www.rfc-editor.org/info/rfc8820
版权声明 (Copyright Notice)
Copyright (c) 2020 IETF Trust 及被认定为文档作者的人员。保留所有权利。
本文档受 BCP 78 和 IETF Trust 关于 IETF 文档的法律条款 (https://trustee.ietf.org/license-info) 的约束,这些条款在本文档发布之日有效。请仔细阅读这些文档,因为它们描述了您对本文档的权利和限制。从本文档中提取的代码组件必须包含简化 BSD 许可证文本,如 Trust 法律条款第 4.e 节所述,并按简化 BSD 许可证中所述不提供任何保证。
目录 (Table of Contents)
- 1. Introduction (简介)
- 2. Best Current Practices for Standardizing Structured URIs (结构化 URI 标准化的最佳当前实践)
- 3. Alternatives to Specifying Structure in URIs (在 URI 中指定结构的替代方案)
- 4. Security Considerations (安全考虑)
- 5. IANA Considerations (IANA 考虑事项)
- 6. References (参考文献)
附录 (Appendices)
- Appendix A. Changes from RFC 7320 (附录 A. 与 RFC 7320 的变更)
- Acknowledgments (致谢)
- Author's Address (作者地址)
核心要点 (Key Points)
URI 所有权原则 (URI Ownership Principles)
URI 的结构应由其所有者控制,而非由外部标准强制规定。标准规范制定者在设计涉及 URI 的协议时,应避免对 URI 的内部结构做出硬性要求。
潜在问题 (Potential Issues)
强制规定 URI 结构可能导致:
- 冲突 (Collisions): 不同标准之间的 URI 约定发生冲突
- 稀释 (Dilution): 临时信息降低 URI 的稳定性
- 僵化 (Rigidity): 固定的 URI 语法干扰期望的部署模式
- 操作困难 (Operational Difficulty): 某些 URI 约定在特定实现中难以支持
- 客户端假设 (Client Assumptions): 客户端错误地假设标准约定的普遍使用
推荐方法 (Recommended Approaches)
使用以下机制而非强制 URI 结构:
- RFC 8288 - Web 链接和关系类型
- RFC 6570 - URI 模板
- RFC 8615 - 众所周知的 URI (Well-Known URIs)
相关标准 (Related Standards):
- RFC 3986 - URI 通用语法
- RFC 7320 - URI 设计和所有权 (已被本文档废弃)
- RFC 8615 - 众所周知的统一资源标识符