人工智能的崛起,正在互联网上引发一场无声的战争。一方是渴望用海量数据训练模型的人工智能公司,另一方则是忧心忡忡的内容创作者和出版商。他们发现自己的作品正被无偿地用于AI训练,而自己要么只能敞开大门,要么只能建立高墙(walled garden),将内容彻底封锁。但现在,网络基础设施巨头 Cloudflare 提出了第三条道路,试图用一个几乎被遗忘的互联网协议来化解这场冲突。
打破二元选择:按抓取付费
目前,内容所有者面临的困境是真实的。许多媒体公司,如《纽约时报》,已经选择通过法律途径对抗 OpenAI 和微软,指控其侵犯版权。而另一些机构,如 Axel Springer 和美联社,则选择与 AI 公司达成授权协议,用内容换取资金和技术合作。但这些一次性的交易谈判门槛极高,对于中小内容创作者来说几乎不可能实现。
Cloudflare 提出的方案名为 “Pay per Crawl”(按抓取付费),其核心是赋予内容所有者在“完全开放”和“完全封闭”之外的第三种选择:对访问收费。这个方案并非创造全新的技术,而是巧妙地“复活”了一个长期处于试验阶段、几乎被遗忘的HTTP状态码: 402 Payment Required
(需要付款)。
这个状态码最初是为了数字现金或微支付系统而设计的,但从未被广泛采用。Cloudflare 如今将其重新启用,旨在为网络规模的内容货币化建立一个程序化框架。
“402需要付款”如何运作?
“Pay per Crawl”目前处于私测阶段,它允许网站所有者对自己的内容设定一个统一的、按请求计算的价格。当一个AI爬虫访问网站时,发布者可以有三种选择:
- 允许 (Allow): 免费开放内容。
- 收费 (Charge): 按设定的价格要求对方付费。
- 拦截 (Block): 完全禁止访问。
有趣的是,即使某个爬虫与 Cloudflare 没有建立支付关系,发布者依然可以选择“收费”。这在功能上等同于一次网络层面的拦截(返回 403 Forbidden
),但它额外传递了一个信息:未来我们之间可以建立付费合作关系。
信任的基石:验证爬虫身份
这个系统的关键挑战在于如何确保付费的爬虫就是它声称的那个,而不是一个伪造者。Cloudflare 采用了名为 Web Bot Auth
的方案来解决这个问题。Web Bot Auth
利用 HTTP 消息中的加密签名来验证请求确实来自一个自动化的机器人。
对于爬虫运营方,整个流程如下:
- 生成密钥: 创建一个 Ed25519 密钥对。
- 发布公钥: 将 JWK 格式的公钥发布在自己托管的目录中。
- 注册: 向 Cloudflare 提供公钥目录的 URL 和用户代理信息。
- 签名请求: 在发出的每个 HTTP 请求中都使用消息签名。
当爬虫发出请求时,请求头中会包含 signature-agent
、signature-input
和 signature
等字段,用于身份验证。
// 一个带有数字签名的请求示例,用于验证爬虫身份
GET /example.html
Signature-Agent: "https://signature-agent.example.com"
Signature-Input: sig2=("@authority" "signature-agent")
;created=1735689600
;keyid="poqkLGiymh_W0uP6PZFw-dvez3QJT5SolqXBCW38r0U"
;alg="ed25519"
;expires=1735693200
;nonce="e8N7S2MFd/qrd6T2R3tdfAuuANngKI7LFtKYI/vowzk4lAZYadIX6wW25MwG7DCT9RUKAJ0qVkU0mEeLElW1qg=="
;tag="web-bot-auth"
Signature: sig2=:jdq0SqOwHdyHr9+r5jw3iYZH6aNGKijYp/EstF4RQTQdi5N5YYKrD+mCT1HA1nZDsi6nJKuHxUi/5Syp3rLWBA==:
两种付费模式:主动与被动
在实际操作中,付费交互分为两种模式:
- 被动发现模式 (Reactive): 爬虫先发出请求,如果目标内容需要付费,服务器会返回
HTTP 402 Payment Required
响应,并在响应头中附带crawler-price
字段告知价格。爬虫收到后,可以决定是否携带crawler-exact-price
头重试请求,表示同意支付。 - 主动意图模式 (Proactive): 爬虫可以在初始请求中就主动包含一个
crawler-max-price
请求头,表示它愿意支付的最高价格。如果内容价格低于或等于该上限,服务器直接返回HTTP 200 OK
和内容,并在响应头中通过crawler-charged
确认实际扣费金额。如果内容价格高于其出价,则返回402
响应。
Cloudflare 在其中扮演记录商家的角色,负责聚合交易、向爬虫收费,并最终将收益分配给内容发布者。
未来展望:从爬虫到AI代理
“Pay per Crawl” 的意义可能远不止于解决当下的爬虫数据问题。Cloudflare 真正着眼的是一个由 AI Agents(人工智能代理)主导的未来。
想象一下,当你的个人AI助理需要为你撰写一份关于最新癌症研究的综述,或为你寻找本地最好的餐厅时,你可以给这个代理一笔预算。它将能够以程序化的方式,通过 HTTP 402
协议与其他信息源自动协商、付费并获取最优质、最相关的内容。
这标志着一种技术上的转变,即通过一个稳健、自动化的机制,让创作者能够真正掌控其数字资产的价值。虽然这个系统还处于非常早期的阶段,例如动态定价、更细粒度的授权模式等问题仍有待探索,但它为构建一个更公平、更多样化的互联网内容生态系统,打开了一扇新的大门。