摘要
- RFC 5005 明确指出分页订阅源具有损失性;即便所有可见分页链接都返回成功,也不能证明得到了一致、完整的瞬时集合。
- 归档关系只提供重建路线。遍历是否完成、怎样处理重复与删除、保存了什么状态、向读者展示了什么,仍需分别取证。
一个决策看板显示:当前订阅文档可访问,prev-archive 能打开,本地已有数万条记录。于是“历史覆盖”被标成绿色。
这个绿色状态把四件事压成了一件事:发布者怎样描述订阅源,采集器实际走过哪些链接,本地怎样合并并保留结果,读者最后看到了什么。
RFC 5005 恰好提供了拆开它们的语言。完整订阅源由一个文档表示逻辑订阅源的全部条目。分页订阅源把内容分散在若干临时页面。归档订阅源以包含近期变化的订阅文档为入口,再以较稳定的归档文档承载较早条目。规范没有定义把这些类型混合使用时的语义。
分页模式的限制最直接。RFC 5005 称它是有损的:客户端翻页期间,条目可能被加入或修改,而且客户端不一定察觉。first、last、previous、next 只是导航关系,不是冻结屏障。全部请求都成功,也只证明若干次请求成功;客户端不应把结果宣称为连贯或完整。
归档模式给出更强的能力,却仍不是结果证明。prev-archive 指向紧邻的较早归档,next-archive 可以指向较新的归档,current 可以回到当前订阅文档。某个归档文档的内容和地址应当保持稳定,客户端才可以把已经抓取的归档视为已处理。
“应当稳定”并非“已经不可变”。这是协议建议,不是内容哈希,也不是外部见证。RFC 5005 提醒:如果发布者修改旧归档,有些客户端可能永远不知道。因此,需要让所有用户看见的重要修订,宜重新放入当前订阅文档。
重建还要求客户端真的行走这条链。它读取一个尚未处理的 prev-archive,合并其中条目,继续向前,直到遇到已经处理的链接、没有更早链接的链头,或者错误。发布者无须提供全部归档;403、404 与 410 都可能成为停止点。客户端也无须始终保存或重建全部内容,但不能在不完整时对用户保持沉默。
因此,“任务结束”至少包含四种不同状态:到达最早归档;到达此前验证过的锚点;因响应错误停止;因请求次数、存储或人工干预策略停止。把它们都写成 completed=true,等于主动丢掉证据边界。
重复条目又带来一层判断。规范建议采用更新时间较新的条目;时间相同或缺失时,优先级需要客户端决定。RFC 4287 定义 Atom 的标识、更新时间和链接结构,却不会替不同实现完成这项判断。RFC 6721 后来加入明确的删除条目元素,因为基础 Atom 本身无法告诉已经处理过某条目的客户端:该条目后来被移除了。
fh:complete 也不能越过层级。它是发布者对单个文档的声明:该文档包含逻辑订阅源的全部条目,未出现的条目不应被视为其中一部分。它并不证明缓存拿到最新字节、旧记录已清理、安全上下文一致、页面正确渲染,更不证明任何人读过或据此行动。
一份可辩护的重建凭证应记录:
- 当前订阅文档的身份、抓取时间与验证器;
- 声明的订阅源类型及实际观察到的关系图;
- 每个 IRI、重定向、响应、认证上下文和内容哈希;
- 遍历顺序、重试、资源上限与准确停止原因;
- 重复、同时间戳、无时间戳和删除标记的处理规则;
- 本地保留状态的修订号、时间截点与完整性状态;
- 实际向用户展示的不完整警告;
- 对读者可见结果的独立读回。
这是一项治理建议,不是 RFC 5005 暗藏的合规字段。它遵循 Heng Lu 对现实层的区分:表示、传输、物化状态与人的观察,必须由证据连接,不能因为字段方便而合并。
规范没有证明任何具体平台的归档稳定,也没有证明某个采集器完整遍历、某项删除真实发生或某位读者受到影响。两项已验证勘误分别修正示例 UUID,并明确 Atom 链接目标应称为 IRI;它们不改变上述证据边界。
领导层真正要问的是:这个观察者能够为截至什么时间的哪一段历史负责,在哪条边上停止,又把哪些不确定性诚实地留给读者?
来源
- RFC 5005:Feed Paging and Archiving
- RFC 5005 勘误
- RFC 4287:The Atom Syndication Format
- RFC 6721:The Atom deleted-entry Element
- IANA 链接关系注册表
- RFC 9111:HTTP Caching
- RFC 5005 规范文本
- RFC Editor 的 RFC 5005 记录
- IETF Datatracker 的 RFC 5005 记录
- IETF Datatracker 历史
- RFC 5023:The Atom Publishing Protocol
- RFC 7232:HTTP Conditional Requests
- RFC 8288:Web Linking
- RFC 8322:Resource-Oriented Lightweight Information Exchange
- Heng Lu:Running Code Primary
- Heng Lu:Minimum Initial Specification
- Heng Lu:On Reality Layers
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
