摘要
newgroup请求服务器创建新闻组,或修改既有群组的版主状态与描述;它不是写入全网统一注册表的命令。- 每个代理都能按照本地授权策略认证请求,也能拒绝执行。同一篇控制文章因此可以在不同服务器上留下不同目录。
- 普通文章在
Newsgroups中写出未知名称,不能顺便创建群组;NNTP 的NEWGROUPS也只是查询所连接服务器的本地历史。
同一份声明,两套目录
设想一篇带有批准归属的控制文章同时抵达两台服务器。它提出一个受版主管理的新闻组,并附上用途描述。第一台服务器认可该层级的管理者,因而在本地创建条目。第二台无法按自己的信任安排确认发件权威,于是把请求留待人工审核,或直接拒绝。
稍后,一篇普通文章把新名称列为目的地。第一台能够把文章存入已经建立的群组;第二台不能因为看到陌生名称,就把它变成本地配置。两台服务器收到了相同声明,只有一台采纳了状态。
这不是协议没能完成“全球同步”,而是协议明确留下的权力边界:传输一项请求,与保管者执行它,是两个事件。
早期规范已允许本地处理
RFC 1036 把控制动作写在 Control 标头中。第一个词是命令名称,后续词是参数。规范允许实现和管理员自动执行控制消息,也允许排队后人工处理。
newgroup 后接群组名,并可带 moderated。正文应简述预定用途;有该参数时请求创建受版主管理的群组,没有时则按非版主管理处理。缺少 Approved 的请求应当被忽略。
早期文本说消息“创建”群组,描述的是愿意执行请求的本地系统所做的动作。自动或人工处理的选择已经说明,不存在一处修改就必然改动所有主机的中央目录。
Control 请求超出普通传输的动作
RFC 5536 进一步界定:Control 把文章标为控制消息,并请求在普通存储或中继之外采取动作。动词说明动作,参数和有时的正文补充细节。
因此,服务器可以接收并继续中继控制文章,却没有执行它。控制文章在库中存在,只能证明请求抵达;不能证明群组已创建,更不能证明当前可用。
格式还禁止一篇文章同时含有 Control 与 Supersedes。管理群组目录和撤回前一篇文章,是两种不同的行政能力,不能靠一个模糊状态合并。
Approved 是必要标记,却不是全网权证
RFC 5537 指出,控制消息会触发超出普通文章处理的动作,因此容易被滥用。当时没有标准化方法认证其发送者,或验证内容确由声称的身份发出,虽然已有非标准机制。
代理在执行前应认证控制消息,但认证方式交给本地策略:另一个协议、外部获得的信息、人工审核或其他安排。更关键的是,任何 Netnews 代理都没有义务执行控制消息。标准解释请求意味着什么,不授予发送者支配远端服务器的权力。
群组控制消息必须带 Approved,缺少它便不应被执行。但该字段记录谁声称批准,并不能单独证明此身份有权在某台服务器上管理相应层级。
创建请求也能修改已有条目
RFC 5537 把 newgroup、rmgroup 与 checkgroups 归为群组控制消息,因为它们都请求更新服务器已知的新闻组列表。执行前,代理必须检查目标名称是否符合 Netnews 命名限制。
newgroup 不只用于创建缺失条目,也可以改变现有群组的版主状态或描述。服务器若执行请求,应按 moderated 参数设置状态;遇到不认识的扩展参数,应忽略消息,而不是猜测。
正文可以携带 application/news-groupinfo,提供群组描述。如果正文也声明版主状态,就必须与命令参数一致。保存群组描述的服务器,在接受请求后应更新自己的那份元数据,即便群组早已存在。
所以被管理的对象不仅是一个字符串,还包括状态和说明;但这些属性都只在本地采纳后生效。
普通发帖不能偷渡命名权
RFC 5537 明确禁止服务器仅因普通文章的 Newsgroups 标头出现未知名称,就自行创建新群组。正常创建应通过控制消息完成。
否则,一次拼写错误、临时标签或恶意命名就可能永久改变服务器配置。把普通内容投递与目录管理分开,阻止作者身份自动升级为命名权威。
因此,一篇文章因目的群组不存在而被拒绝,并不证明 newgroup 请求从未传播。它只证明这台服务器在处理文章时,没有可用的本地条目。
NEWGROUPS 查询的是一台服务器的记忆
RFC 3977 定义了读者命令 NEWGROUPS:它返回查询服务器自某一时刻以来创建的群组。名称看似相近,但它并不执行 newgroup,只是读取本地历史。
返回结果可以包含当前已不可用的群组,也可以漏掉创建日期未知的群组;空列表同样可能完全有效。客户端不能把它当成全网注册表,也不能用一次空结果证明某个名称从未存在。
收到声明、执行声明、当前可用、出现在带日期的历史报告中,是四个相互关联但不能互换的事实。
IANA 注册机制名称,而不注册所有群组
IANA 消息标头注册表 把 Control 记录为永久的 Netnews 字段,并指向相应标准。这让不同实现能够识别同一种控制表面。
它不列举新闻组,不任命层级管理员,也不记录哪些服务器执行了请求。注册表稳定的是工具名称,不是每次使用的结果。
不虚构一致性的分布式命名
newgroup 让行政意图可以像文章一样在分布式网络中流动,无须依赖单一数据库。统一语法说明请求,命名规则限制目标,Approved 标明批准归属,而认证与本地政策决定实际效果。
一台服务器创建、另一台等待、第三台拒绝整个层级,都可能是正常结果。准确描述应指出观察的是哪台服务器、哪个时刻,而不是笼统声称群组“已经存在于 Usenet”。
它留下的历史经验十分清楚:可携带的声明能够协调自治系统,但只有保管者采纳后,它才成为该系统的运行事实。
来源
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
