转发数据包、缓存和重新发布在仪表盘上看起来一样,但一旦出现权利问题,表现就完全不同。在用户与服务器之间搬运字节的服务执行一种行为,而保存响应并把它交给下一位访问者的服务执行另一种行为。以你自己的名义发布他人的材料是第三种行为,而通常意义上的发行只有这第三种行为。

先弄清你的技术栈实际执行三者中的哪一种,再把它与对应的规则挂钩。产品标签在这里什么都决定不了,所用的协议也不是判断标准。

代理或 VPN 可以执行的三种行为

网关接受一条 TCP 流,重写地址并在两个方向上转发分段。连接结束后磁盘上什么都不留,而且除非客户端与网关而不是与源站协商 TLS,负载对网关始终是不透明的。

缓存中间件的做法不同:它解析请求,把响应保存在它自行计算或从头部读取的生存期内,然后把该已存对象重放给后来的客户端。此时线路之外存在了某样东西,以 URL 和验证器为键,而保存它是配置选择,不是副作用。

重新发布更进一层。材料放在你控制的基础设施上,面向你选定的受众,往往经过编辑。前两种行为描述的是传输,第三种描述的是发行。

行为之后留下什么决定结果的问题
承载流量持续数秒的转换状态与缓冲区哪条中间人条款涵盖瞬时传输?
存储响应一个对象加上新鲜度与验证器元数据保存与重放是否获授权,期限到何时?
在自己的 URL 下提供作品面向新受众的已发布副本哪种许可涵盖向该受众的发行?

解密代理把承载变成复制的地方

决定多数争论的区别在于:该设备是否曾经持有明文。纯隧道,无论是 WireGuard、OpenVPN tun 设备还是 SSH -L 转发,都只在端点之间搬运密文,不留下任何可读的东西。终结 TLS 的代理正相反:它完成握手,把响应缓存在内存中,然后朝客户端方向重新加密流。在这些操作之间,作品以运营者可以检视并保留的形式存在。

17 USC 106 把复制与发行列为专有权利,每一项都受同一法典所设限制的约束。毫秒级缓冲区或许可以毫不费力地落进某项限制;一个被保存、可重放的对象就很难安置在那里。持续时间与目的,比内存被碰过这一事实更有分量。

这些都不会把 VPN 变成许可证,也不会让每个代理都成为侵权者。传输只是若干事实之一,可评估的问题始终是:哪种行为、对谁的材料、依据什么许可。

缓存头描述的是协议许可,不是法律许可

HTTP 缓存根据响应元数据决定可以存储什么,RFC 9111 规定它遵循的规则。Cache-Control: no-store 要求每一个合规缓存丢弃该响应,而 private 把重用限制在单个用户,长的 max-age 则邀请共享存储。一条请求就能告诉你源站选了哪种策略。在争论别的之前先把它跑一遍。

curl -sI https://origin.example/media/report.pdf | grep -i -E 'cache-control|etag|age'

宣称长寿命的响应是在告诉缓存:在协议层面重放是可以接受的。那句话完全没有说明你是否可以把同一个对象拿去重新托管并并入自己的服务。两种不同的许可来自两套不同的机制,满足其中一个,另一个仍原封不动。

镜像情形同样失败。端到端 HTTPS 让透明缓存无法存储任何东西,但这个结果既没有创设发行材料的权利,也没有取消你已有的权利。协议行为说明设备能做什么;它从不提供授权。

服务上线前该写下什么

用外部人能核对的措辞描述这套安排。写明材料及其来源,列出系统执行的行为,并说明每个被存对象存活多久。

把这份描述随部署保存,而不是留在某人的记忆里。投诉到来时,可辩护的立场与猜测之间的差距,通常就是几个月前写下的、点名保存期限与许可证的那一段。

一份简短的复核清单覆盖反复出现的漏洞:

  • 材料的来源及其附带条款。
  • 所执行的每一项行为:转发、存储、编辑、提供。
  • 按对象类别划分的保存期限,以小时或天计。
  • 提供环节所依赖的许可或限制。
  • 权利人的联系方式与下架路径。

把清单对着实际运行的配置跑,而不是对着架构图。哪里缺答案,那个缺口就是下一项任务:要么为该项行为取得许可,要么停止执行它。对商业服务,请律师把书面描述对照你提供服务的法域读一遍,因为正是这份描述让那次复核成为可能。凡是你无法用文字描述的,都是你无法辩护的立场。

相关文章