摘要
- RFC 8174 规定,只有在文件采用相应约定时,以全大写形式出现的 BCP 14 关键词才具有专门定义;小写
must、should仍按普通英语理解。 - 这不等于“只有大写才有规范性”。RFC 8174 明说,规范文本可以不使用这些关键词;RFC 2119 还指出,词语的效力受所在文件要求层级影响。
- 因此,可靠的合规回执必须保存文件版本与状态、关键词约定、完整句子、责任主体、条件与例外、测试以及观测结果,而不能只保存一次大小写匹配。
扫描器最先找到的证据也是最薄的
从 RFC 中抽取所有 MUST 并不难。把这些词涂成红色,再导出成控制清单,看起来就像把自然语言变成了机器规则。问题是,词可能出现在引文、示例、标题或对别处要求的讨论中。
即使它确实属于要求句,工具仍需知道主语、动作、触发条件、所引用的定义以及文件状态。少了这些,测试团队甚至无法决定应向哪个组件发送什么输入。
RFC 8174 的价值在于只解决它能够解决的歧义。它让词汇开关更清楚,却没有把解释权伪装成正则表达式。
“通常大写”留下了两套可能的语法
Scott Bradner 的 RFC 2119 给出了通用要求词汇:MUST 是规范中的绝对要求,MUST NOT 是绝对禁止;SHOULD 允许在存在正当理由、且充分理解影响后偏离;MAY 保留真实选择,但选择不同分支的实现仍需能够互操作。
原文说,这些词“通常”使用大写。于是,一个小写 must 既可能被当成排版不规范的专门术语,也可能只是普通英语。作者、审稿者和工具可以对同一句话套用不同语法。
Leiba 的修订关闭了这条岔路:只有全大写形式才获得 BCP 14 的专门含义;未大写时,按英语日常含义阅读。新版固定声明还要求文件把这套约定明说出来。
修订的另一半阻止了错误捷径
最危险的概括是“大写等于规范,小写等于说明”。RFC 8174 在同一段里明确否定它:使用关键词不是必需条件,大量规范文本并不使用这些词。
这意味着审阅要做两个判断。第一,某个词是否调用了 BCP 14 的专门定义。第二,整句话是否具有规范作用,其权威来自哪里,约束范围是什么。
把两个判断合并后,扫描器会同时制造漏报和误报。没有关键词的规范句被丢掉,引文中的大写词却被升级为本地要求。表面上规则更整齐,实际只是让错误更难看见。
词语的效力由文件借给它
RFC 2119 自己提醒,关键词的效力会被所在文件的要求层级修改。排版不能把 Internet-Draft 变成标准,也不能把信息类 RFC 变成普遍互操作命令,更不能把企业清单变成 IETF 共识。
这里存在一条制度链。作者控制句子,工作组和流审批者提供过程与状态,RFC Editor 维护获批文本的含义,实现者把它映射为代码,测试者再观察行为。
大写字母只让交接更可读,不能替代链条上的任何一方。BCP 14 声明因而是一张来源回执,而不是格式装饰。
SHOULD 不是较轻的 MUST
把 MUST、SHOULD、MAY 排成一根强弱滑杆,会抹去三种不同控制结构。MUST 关闭选择;SHOULD 保留一个必须说明理由、权衡后果的偏离口;MAY 明确保留选择,同时要求周围系统能容纳两个分支。
IETF 当前作者指南特别提醒 SHOULD 的难点:作者应解释为何不用 MUST,以及偏离会带来什么。把它在合规表中简单标成“可选”,恰好删除了实现者最需要的决策信息。
可执行要求应包含责任主体、行为、前提、允许的例外及互操作影响。关键词是索引,不是整条控制。
风格指南给出了有意的小写反例
RFC 7322 先声明自己不采用 RFC 2119 术语,随后使用小写 must 和 should,并为它们解释本地编辑含义:前者指 RFC Editor 自动执行的修改,后者指可以讨论的推荐做法。
这不是 BCP 14 的漏洞,而是明确语法的示范。读者不必猜测小写是否为排版失误,因为文件已经说明了另一套解释。
同一份指南还规定,若采用 RFC 2119 的解释,就应引用它并列为规范性参考;否则必须说明正确解释。熟悉的字形不能替代来源。
结构化标记也只包住短语
RFCXML 现在提供可选的 <bcp14> 元素,可以包住 MUST 或 SHOULD NOT,帮助写作与呈现工具识别专门短语。官方说明同时要求,不要用它包住整个要求。
这个设计边界很重要:机器字段记录的是短语,不是完整义务。责任主体、动作、条件、例外和引用仍留在普通文档结构中。
工具可以把标记当作高质量候选信号。若直接把它转成合规规则,就等于向字段索取它从未承诺记录的判断。
大写是一张词汇回执,不是一纸授权
Barry Leiba 并没有给大写字母增加权力。他让读者可以核对:这里究竟是在调用 BCP 14 定义,还是使用普通英语。
接下来,权威由共识、文件流和状态提供,范围由完整句子及引用提供,合规证据由实现和测试提供。任何一层都不能从词形中自动还原。
谨慎的自动化应先找到词,再保存它所在的文件。它应继续追问谁受约束、依据哪个版本、有哪些例外、用什么观测确认。大写字母把人带到这些问题面前时,才算完成任务。
来源
- https://authors.ietf.org/language-and-style
- https://authors.ietf.org/rfcxml-vocabulary
- https://www.ietf.org/lib/dt/media/photo/Barry_2021-05-22_IMG_0176_head_jbGTM5W.jpg
- https://www.rfc-editor.org/rfc/rfc2119.html
- https://www.rfc-editor.org/rfc/rfc7322.html
- https://www.rfc-editor.org/rfc/rfc8174.html
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
