案例库 · 软件与 IT · 技术决策 · 1997–2000
RFC 2119 为标准赋予语法,此后每份规范都讲这种语言
十个大写关键词把含糊的表述变成了工程师和律师都能解析的要求
IETF
那一手
多年来,IETF 规范中“必须”和“应该”等词语使用松散,导致实现者和审查者猜测要求的实际含义。1997年3月,Scott Bradner 发布了 RFC 2119 作为最佳当前实践。
该文档定义了十个关键词的含义:MUST 和 MUST NOT 是绝对要求;SHOULD 允许在权衡影响后偏离;MAY 表示真正的可选行为。它还提醒,这类命令词应谨慎使用,仅用于互操作或安全需要时。
此后每份标准轨道 RFC 都包含“按 RFC 2119 所述解释”的措辞——包括 TLS 1.3、OAuth 2.0 以及数千份其他文档。这一约定将散文变成了合同语言,让一致性测试、安全审查和法律分析可以共享。
为什么管用
- 一个共享词汇消除了此后所有 RFC 的歧义,而不仅仅是某个协议
- 明确界定 SHOULD 和 MAY 的作用域,防止可选行为悄悄破坏互操作性
- BCP 身份使采用成本低:无需新技术,只需引用
- 它为一致性测试和安全审查提供了询问规范要求的通用方式
值了多少一次性定义 MUST、SHOULD、MAY 的含义利落
可以搬走什么
有时,获胜的标准管的是词,而不是网线。定义好需求词汇,整个生态就继承了精确性。
后来呢
RFC 2119 经过 RFC 8174 更新,四分之一世纪后仍是 IETF 需求语言的骨架;其关键词约定扩散到 ISO 风格规范、API 文档以及各行业标准。它是互联网上被引用最多的文档之一。
资料来源
- RFC 2119: Key words for use in RFCs to Indicate Requirement Levels
- RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3
发现哪里写错了?告诉我们。