"我们很安全"是一句不可证伪的话。用断网测试、DevTools 网络面板和资源加载形态三种方法,自己验证任何在线工具有没有上传你的文件;并说明浏览器本地处理的实现原理、代价,以及什么时候该选云端。
每天有大量的合同、身份证扫描件、银行流水、体检报告,被人拖进搜索结果第一个跳出来的"免费在线 PDF 合并"网站。
大多数人不会去想文件去了哪里。而所有这类网站都会告诉你"我们很安全"——这句话本身是不可证伪的,你没有任何办法从一句声明里判断真假。
好消息是:你不需要相信任何人的说法。在线工具有没有把你的文件传出去,是可以自己验证的,三种方法,都不需要专业工具,几分钟就能得出结论。
本文讲的是方法,不是结论。你可以拿它去测任何一个在线工具——包括本站。
原理很简单:如果文件必须上传到服务器才能处理,那么断网之后这个功能一定跑不完。
操作步骤:
判读标准:
| 现象 | 结论 |
|---|---|
| 流程走完,成功下载到正确的结果文件 | 处理在本地完成 |
| 卡在"处理中"、转圈不动,或报网络错误 | 需要服务器参与 |
有两个坑要注意,否则会误判:
坑 1:先加载页面,再断网。 顺序反了必然失败——页面本身就下载不下来,这不能说明处理逻辑在哪。
坑 2:页面能离线打开 ≠ 处理在本地。 很多站用了 Service Worker 做离线缓存,断网后页面照样能打开,但一点"开始处理"就报错。所以必须测完整流程直到拿到结果文件,光看页面能不能打开没有意义。
这个方法的说服力在于它绕开了一切话术:能在完全断网的情况下把 100 页 PDF 合并好并下载下来,那这件事就只可能发生在你自己的设备上。
断网测试给的是"是/否",网络面板能告诉你具体传了什么、传了多大。
操作步骤:
F12 打开开发者工具,切到 Network(网络) 面板关键判读点:
POST。有些服务会先向后端要一个签名直传地址,再用 PUT 把文件直接传到 S3 / R2 之类的对象存储。要看的是请求体的大小,不是方法名。multipart/form-data 里裹着你的文件名,就是上传了。Fetch/XHR 能过滤掉大量静态资源噪音。要公平的地方: 几 KB 的小请求是正常的,统计分析、错误上报、字体、埋点都长这样,它们不是在传你的文件。判断标准是体积和你的文件对得上的出站请求,而不是"有没有网络请求"。任何页面都会有网络请求。
这是个反向信号,而且相当可靠:本地处理和云端处理,资源加载的形态完全不同。
在 Network 面板里看进站的资源:
本地方案的特征 —— 会拉一些明显偏大的东西:
.wasm 文件(WebAssembly 模块,几百 KB 到几 MB)云端方案的特征 —— 前端很轻:
所以一个简单的心智模型:
它下载了几十 MB 却什么都没传出去 → 本地。 它下载了几百 KB 却传出去了 8MB → 云端。
这也解释了一个常被误解的现象:本地 AI 工具第一次用为什么这么慢。因为它在把整个模型下载到你的浏览器里。这恰恰是它不上传的代价,也是它不上传的证据。
五年前这篇文章写不出来——那时候大部分处理确实只能放服务器。变化来自几项浏览器能力的成熟:
| 能力 | 让什么成为可能 |
|---|---|
| WebAssembly | 把 C/C++/Rust 写的图像、加密、模型推理库直接搬进浏览器,速度接近原生 |
| Web Crypto API | crypto.subtle 原生提供 AES-GCM、SHA-256、HMAC、RSA,硬件加速,不需要自己实现密码学 |
| Canvas / OffscreenCanvas | 像素级图像处理、格式编码(JPEG/WebP/PNG)、下采样,可在 Worker 里跑不卡界面 |
| File API / Blob | 读本地文件、在内存里生成新文件、直接触发下载,全程不经过服务器 |
| 设备性能 | 现在一台普通笔记本的内存和 CPU,足以在内存里重组一个几百页的 PDF |
具体到实现层面,这些工具在浏览器里做的事情是很实在的:
pdf-lib 这类库直接解析和重写 PDF 的字节结构(对象流、交叉引用表),在内存里拼出一个新文件pdf.js 把页面渲染到 Canvas,再导出成 PNG这些都不是"把服务器搬到前端"的取巧——是这些能力本来就在浏览器里。
如果只讲好处,这篇文章就变成了它一开始批评的那种营销文案。本地方案有实实在在的取舍:
1. 首次加载可能很重。 需要模型的功能(比如 AI 抠图),第一次用要下载几十 MB。之后浏览器会缓存,但第一次的体验确实不如云端。
2. 受设备内存限制。 服务器有几十 GB 内存,你的浏览器标签页没有。一个几百 MB 的 PDF,或者一次几百张图的批处理,在本地可能直接把标签页搞崩——而云端服务能轻松吃下。
3. 有些事本地真做不了。 高质量 OCR、需要 GPU 集群的大模型推理、跨设备同步、处理历史记录、团队共享链接——这些依赖服务端,不是浏览器不努力。
4. 手机上会明显更慢。 移动设备的 CPU 和内存都吃紧,同样的操作耗时可能是桌面端的数倍。
5. 关掉标签页就没了。 没有服务端任务队列,你不能提交完就走人。
该用云端的场景:
不该用云端的场景——这些内容一旦离开你的设备,你就失去了对它的控制:
对这一类文件,多花三分钟做一次断网测试,是完全值得的。
本站的工具全部在浏览器本地运行,不上传任何文件。但你不需要相信这句话——用上面三种方法测一遍就知道了,尤其推荐断网测试。
处理敏感文件的常用几个:
顺带一提:加解密类工具尤其不该用云端的。把明文和密码一起发给服务器,加密这件事本身就失去意义了。