curl -I https://example.com快速确认状态码、跳转和缓存头。
约 947 字大约 3 分钟
2026-05-14
curl 和 wget 都能从网络获取内容。简单下载文件时 wget 很顺手;调试 HTTP 接口、请求头、状态码和 API 时,curl 更灵活。
`curl` 和 `wget` 都能从网络获取内容。简单下载文件时 `wget` 很顺手;调试 HTTP 接口、请求头、状态码和 API 时,`curl` 更灵活。
curl -I https://example.com快速确认状态码、跳转和缓存头。
curl -o file.zip URL把 URL 内容保存为指定文件名。
wget -c URL下载中断后继续下载。
curl -X POST -H "Content-Type: application/json" -d '{}' URL调试 API 时常用。
| 场景 | 推荐 |
|---|---|
| 下载一个文件 | wget 或 curl -O |
| 调试接口 | curl |
| 查看响应头 | curl -I |
| 递归下载网站资源 | wget |
| 断点续传 | wget -c 或 curl -C - |
curl -O https://example.com/file.zip # 使用远端文件名保存
curl -o app.zip https://example.com/file.zip # 指定本地文件名
wget https://example.com/file.zip
wget -O app.zip https://example.com/file.zipcurl -I https://example.com # 只看响应头
curl -i https://example.com # 响应头和响应体都显示
curl -L https://example.com # 跟随跳转
curl -s -o /dev/null -w "%{http_code}\n" https://example.com最后一条适合脚本里只检查 HTTP 状态码。
curl "https://api.example.com/users?page=1"
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-d '{"name":"shuo"}'
curl -H "Authorization: Bearer TOKEN" https://api.example.com/mewget -c https://example.com/big.iso
curl -C - -O https://example.com/big.isocurl -v https://example.com # 显示请求细节
curl --connect-timeout 5 https://example.com
wget --spider https://example.com/file.zip # 只检查是否存在,不下载可以粗略理解为:curl 更像“网络请求调试器”,wget 更像“下载器”。下载单个文件两者都能做,但调接口、看响应头、发 POST 请求时,curl 更顺手;递归下载、断点续传、镜像站点时,wget 更自然。
| 场景 | 推荐 | 常用命令 |
|---|---|---|
| 看接口是否通 | curl | curl -I https://example.com |
| 调试 JSON API | curl | curl -H 'Content-Type: application/json' ... |
| 下载大文件 | wget | wget -c URL |
| 下载后指定文件名 | 两者都可 | curl -L -o file URL / wget -O file URL |
-v 或 --debug 看连接细节。curl 需要加 -L 跟随跳转。不要盲目复制 curl | bash
安装脚本可以这样分发,但执行前最好先下载到本地看内容,确认来源可信再运行。
curl 失败时先分清是哪一层失败:
| 表现 | 常见含义 | 下一步 |
|---|---|---|
Could not resolve host | 域名没解析出来 | 查 DNS 或 /etc/hosts |
Connection timed out | 包到不了或被拦截 | 查路由、防火墙、安全组 |
Connection refused | 机器可达但端口没人监听 | 查服务和监听端口 |
HTTP 401/403 | 认证或权限问题 | 查 token、Header、账号权限 |
HTTP 500 | 服务端应用错误 | 看响应体和服务日志 |
脚本里只需要状态码时,可以用 -s -o /dev/null -w "%{http_code}\n";人工排查时则加 -v 看连接和 TLS 细节。
版权归属:Shuo Liu