摘要

  • RFC 8890 要求在利益冲突时优先考虑作为人的终端用户,同时明确承认 IETF、政府代表、民间倡导者和被咨询的群体都不会因此自动获得全体用户的委托。
  • RFC 9110 所称 user agent 是发起 HTTP 请求的客户端程序;它可以设置沙箱、传递范围有限的偏好、阻断能力,却不能单凭一次请求证明人在场、知情同意或集体授权。
  • 可审计的替代办法不是问“浏览器是否代表用户”,而是逐项记录受影响人群、利害机制、咨询缺口、默认与选择、能力边界、可替代实现、切换代价和实际结果。

一个请求从设备发出时,人可能正在看屏幕,也可能已经睡着。后台任务在刷新,爬虫在抓取,家用设备在上报,脚本按定时器执行。RFC 9110 把发起请求的客户端程序称为 user agent,并特意说明,请求发生时不一定有人直接操作。

这里的“agent”描述的是报文链条中的角色:谁选择方法、附加字段并把请求送出去。它没有回答另一组问题:谁承担后果,谁做了选择,程序可在多大范围内行动,又是谁准许它替别人作出判断。

Mark Nottingham 撰写的 RFC 8890 正是在这两种“代理”之间划线。它坚持互联网应首先服务终端用户,但拒绝把优先顺序偷换成代表资格。真正的人是目的;替人发出请求的软件只是手段。

用户首先是受影响的人,不是协议管理员

RFC 8890 的终端用户不等于配置路由器、持有账号或点击鼠标的人。被联网摄像头拍到的人、进入传感器空间的人、受到无人值守软件决定影响的人,也可能是终端用户。判断标准是人的活动是否受到系统支持或伤害,而不是他是否出现在控制台前。

这一步随即破坏了“用户想要什么”这个方便说法。一个人可以同时是读者和作者、买家和卖家、服务消费者和小型服务提供者;隐私、可达性、安全、价格和灵活性会互相冲突。一项设计可以保护某一类人的隐私,却增加另一类人的验证成本。所谓用户利益如果不写明人群、角色和环境,就仍是空位。

RFC 8890 对制度能力的描述同样克制。IETF 并不天然比别人更懂用户利益,也不能把技术参与者自身的经验投射给所有人。政府支持的参会者不自动代表其辖区内的用户;民间社会人士可以提供专业知识,却不必然代表更大的群体;针对受影响社区的咨询能改善证据,也无法形式化保证代表性。

因此,“优先”是一条处理冲突的决策原则,“代表”却是需要委托人、范围和问责的授权关系。前者不会凭空签出后者。

沙箱之所以有用,恰恰因为它不拥有全部权力

RFC 8890 用浏览器解释 user agent 的有限价值。网站通常不能任意进入个人系统,而是通过浏览器获得被约束的显示、存储、设备和代码执行能力。沙箱、权限和同源边界让远端服务不能想做什么就做什么。

这种中介保护是真实的,却不能被扩大成“浏览器代表了用户”。沙箱可以挡住任意文件访问,却不会自动解决追踪、诱导界面或不合理默认;权限框可以提供拒绝按钮,也可能通过反复询问把人推向接受;扩展可以保护一个工作流,同时增加新的攻击面。厂商阻断服务能力时,也可能优先保护自身商业位置。

审计应落到具体控制上:它保护的是哪一项利益,限制服务的哪一种能力,默认状态是什么,适用于哪个来源或请求,接收方是否遵守,人在何处可以撤销。任何一项成功都不能替整个 user agent 声称“代表”。

RFC 6973 把参与、同意、偏好表达、数据最小化和安全分开讨论,正好提供了这套边界。一个隐私设置或偏好字段只能证明某个范围内存在一个信号。还要记录是谁设置、是否由默认值代填、持续多久、发送给谁、如何撤回以及实际执行结果。

软件可以忠实传递界面允许表达的偏好,却无法据此推断界面没有询问的利益。请求之外的其他受影响者甚至没有设置入口。技术传递不是政治授权。

伤害主张必须留下机制,而不是留下音量

RFC 8890 没有给“对终端用户的负面影响”一个机械定义。它要求相应的标准团体讨论具体主张并形成共识。只说“这会伤害用户”不够;因为主张者人少、离场或缺乏漂亮数字就拒绝识别伤害,也不够。

RFC 7282 对粗略共识的解释补上了方法:解决的是 issue,不是统计有多少人支持。会议中的 hum 可以帮助主席发现问题、继续调查,不能作为终结异议的投票。提出问题的人离开后,技术问题也不会消失。

一份合格的影响记录应说明:哪类人受影响;设计通过什么机制产生利益或伤害;依据是什么;还有哪些反例与不确定性;替代方案把成本转给了谁。如果不同用户之间确实冲突,应在最不利环境中测试,而不是虚构一个平均用户。无法避免的取舍也要写清理由和承担者。

这里还隐藏着 Heng Lu 所说的代理问题。做决定的人往往能获得协调效率、产品收益或制度声誉,而不在场的人承担隐私、退出或可用性损失。会议席位不能自动填平这种激励差。

咨询证明“听到过”,不能证明“受托于”

RFC 8890 要求标准制定者以受影响社区习惯的方式接触他们,设计合适的反馈渠道,并尽量避免部署后才让人意外发现。邮件列表、BOF 或工作组会议对协议专家很有效,对不使用这些渠道、没有相同语言能力或尚未感知影响的人却可能完全无效。

RFC 8752 记录的 ESCAPE 研讨会就是一份具体咨询材料。它能说明组织者邀请了谁、参与者提出了什么、内容聚合与开放 Web 之间有哪些矛盾。它不能说明现场的人得到所有出版者、广告商、读者和被系统描述者的委托。

咨询收据需要保留组织者、邀请范围、语言与无障碍条件、回复者构成、缺席群体、问题清单、回应、设计变更和未采纳理由。最关键的一栏是未知:哪些人仍没有被触达,哪些影响仍没有证据。

把“听取意见”与“获得授权”分开,并不会削弱倡导者。相反,它允许专业意见作为证据进入流程,而无需让发言者背负虚构的全体委托;也让缺席的人继续作为委托人可见,而不是被沉默地算成赞成。

切换按钮不是退出收据

RFC 8890 认为多种 user agent 实现可以降低切换成本,并促使实现者重视人的利益。RFC 9518 将这一点扩展为对集中化的检验:只有确实存在替代品,且替代所需时间、资源、知识、协调和功能损失可承受,切换才构成约束。

能下载另一款程序,不代表能离开。数据和偏好能否迁移?凭证是否连续?扩展、自动化和无障碍能力是否等价?平台是否允许更换默认?组织策略是否强制一种客户端?安全提示和学习成本是否重置?失败后能否返回?这些问题共同决定实际退出成本。

规范复杂度也会反过来塑造选择。过度复杂会让独立实现减少;规定不足则可能迫使产品依赖专有扩展,同样造成锁定。品牌数量看似很多,如果共享同一引擎、分发入口或政策依赖,选择仍可能只是表面。

所以退出测试必须由具体人群执行,记录耗时、丢失、协作、默认状态和迁移后结果。user agent 只有在表现不再符合利益时确实可能被替换,才会受到用户选择的约束。

中介权力要有一次正向动作,也要有止境

RFC 9518 提出,中介参与应由至少一方当事人的正向动作触发,其观察与控制范围应限于实现功能所需。它来自 Independent stream,明确代表作者观点,不是 IETF 共识或普遍有效的法律。

作为审计框架,这两个边界仍很实用。需要记录 user agent 如何被选中,是主动安装、平台默认还是组织强制;它能看到哪些数据、改变哪些请求、保留什么、屏蔽什么;使用者如何撤权、如何替换。一次点击只授权特定动作,不会把此后的所有二次用途自动纳入同意。

企业管理的客户端还揭示了委托人的错位。配置可能真实表达雇主政策,却不表达承担影响的个人偏好。把它标成“用户选择”会同时掩盖组织权力和个人缺口。

同一个名字,三份文件,三种权威边界

Mark Nottingham 可以被准确归因,却不能因此成为这些制度与协议的主权者。RFC 8890 是 IAB stream 的 Informational RFC,作者为 Nottingham,发布时代表 IAB 共识;它不是 Internet Standard,也不代表 IETF 共识。他同期的说明把文件界定为有说服力的指导,而非约束性命令。

RFC 9110 则是 IETF Standards Track 规范,由 Roy Fielding、Mark Nottingham 与 Julian Reschke 共同编辑,背后是长期集体标准工作。它定义协议角色,不赋予编辑对任何实现的控制权。

RFC 9518 又不同:它是 Independent stream 的 Informational RFC,状态说明明确把观点归于作者本人。关于切换、复杂度和中介边界的分析可以拿来测量,却不能冒充互联网社区投票。

IETF Datatracker 资料证明 Nottingham 在 HTTP、URL、RSS/Atom、QUIC 等领域的长期贡献和时点职务。它不证明他拥有 HTTP 或 Web、控制浏览器政策、决定 IETF 结果,或代表任何用户群体。

把“代表”拆成一串不能互相继承的收据

先画出受影响的人,包括从未发出请求的人;再按角色和场景区分利益。写明收益或伤害通过什么机制出现,证据来自哪里。咨询记录要把邀请边界和缺席保留下来。

然后才进入技术链:选中了哪个 user agent,谁设置默认,哪些偏好正在生效,沙箱允许或拒绝什么,执行能否观察,替代实现是否独立,切换到底损失什么。最后记录各人群结果以及标准流程如何处置冲突。

这些收据不能越级:设置成功不证明知情偏好,偏好不证明所有受影响者同意,咨询不证明代表资格,出现替代品牌不证明能够退出,观察到局部收益也不证明普遍福祉。

“互联网为了终端用户”因此不是替用户发言的许可证。它是一项更难的纪律:让承担影响的人始终可见,让中介只拥有被选择的有限能力,让退出和结果接受检验。user agent 最值得信任的地方,不是它声称承载了谁的声音,而是它清楚显示自己不能替谁发言。

来源