curl 适合 API 调试、多协议请求和精细控制;wget 适合递归下载、镜像站点和断点续传。脚本里调 HTTP API 通常用 curl,下载整站或大文件常用 wget。
| 维度 | curl | wget |
|---|---|---|
| 协议 | HTTP/HTTPS、FTP、SFTP、SMTP 等 | 主要是 HTTP/HTTPS/FTP |
| 递归下载 | 不支持 | 支持 -r、-m |
| 断点续传 | 支持 -C - |
支持 -c |
| 请求控制 | 方法、头、数据、认证非常细 | 偏下载场景 |
| 上传 | 支持多种协议 | 支持有限 |
| 默认输出 | 输出到 stdout | 保存为文件 |
| 代理/证书 | 选项丰富 | 选项较简单 |
-c/-t 更直接。curl -fsSL -o app.tar.gz https://example.com/app.tar.gz
curl -v -X POST -H 'Content-Type: application/json' \
-d '{"id":1}' https://api.example.com/items
wget -c https://example.com/big.iso
wget -r -np -k https://docs.example.com/
-o 会把二进制刷到终端。-f 让 curl 在 HTTP 4xx/5xx 时返回失败;否则脚本可能把错误页当成功。--spider 或 -np 限制范围。-v。curl — HTTP 客户端wget — 下载工具openssl — TLS 排查