首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >掌握这些curl命令,让你的网络调试更高效

掌握这些curl命令,让你的网络调试更高效

作者头像
程序熵
发布2025-12-30 20:03:58
发布2025-12-30 20:03:58
3410
举报
文章被收录于专栏:技术汇技术汇

curl 是一个强大的命令行工具,用于传输数据,支持多种协议。无论是日常开发还是系统调试,curl 都是必备工具。 今天就来分享一些实用的 curl 命令实例。

🔍 基础网页操作

查看网页源码

最简单的用法是直接获取网页内容:

代码语言:javascript
复制
$ curl baidu.com
<ahref="http://www.baidu.com/">Moved Permanently</a>.

保存网页到文件

使用 -o 参数将网页保存为文件,功能类似 wget:

代码语言:javascript
复制
$ curl -o baidu.html baidu.com

📋 查看HTTP响应信息

显示完整响应头

-i 参数显示HTTP响应头信息和网页内容:

代码语言:javascript
复制
$ curl -i baidu.com
HTTP/1.1301MovedPermanently
Location: http://www.baidu.com/
Date:Thu,04Dec202516:32:41 GMT
Content-Length:56
Content-Type: text/html; charset=utf-8
<ahref="http://www.baidu.com/">Moved Permanently</a>.

显示详细通信过程

-v 参数展示整个HTTP通信过程,包括连接建立、请求头、响应头等详细信息:

代码语言:javascript
复制
$ curl -v baidu.com
*Host baidu.com:80 was resolved.
*IPv6:(none)
*IPv4:124.237.177.164,111.63.65.103,111.63.65.247,110.242.74.102
*Trying124.237.177.164:80...
*Connected to baidu.com (124.237.177.164) port 80
> GET / HTTP/1.1
>Host: baidu.com
>User-Agent: curl/8.7.1
>Accept:*/*
>
*Request completely sent off
< HTTP/1.1 301 Moved Permanently
< Location: http://www.baidu.com/
< Date: Thu, 04 Dec 2025 16:33:59 GMT
< Content-Length: 56
< Content-Type: text/html; charset=utf-8
<
<ahref="http://www.baidu.com/">Moved Permanently</a>.

🛠️ 使用httpbin.org进行HTTP测试

httpbin.org是极佳的HTTP测试工具,以下是一些常用场景:

基本信息获取

代码语言:javascript
复制
# 获取公网IP
$ curl http://httpbin.org/ip
# 查看请求头信息
$ curl http://httpbin.org/headers
# 查看客户端类型
$ curl http://httpbin.org/user-agent

请求参数测试

代码语言:javascript
复制
# GET请求传参
$ curl "http://httpbin.org/get?name=Tom&age=25"
# POST请求提交数据
$ curl -X POST http://httpbin.org/post -d "name=Tom" -d "age=25"
# 提交JSON数据
$ curl -X POST http://httpbin.org/post \
-H "Content-Type: application/json" \
-d '{"name":"Tom","age":25}'

状态码与重定向

代码语言:javascript
复制
# 测试特定状态码
$ curl -I http://httpbin.org/status/404
# 跟随重定向
$ curl -L http://httpbin.org/redirect/3

Cookie操作

代码语言:javascript
复制
# 查看当前Cookie
$ curl http://httpbin.org/cookies
# 设置Cookie
$ curl "http://httpbin.org/cookies/set?session=12345&user=tom"

文件与数据测试

代码语言:javascript
复制
# 获取随机数据
$ curl http://httpbin.org/bytes/100
# 下载图片
$ curl http://httpbin.org/image/png -o image.png
# 流式传输测试
$ curl http://httpbin.org/stream/10

💡 实用技巧

限速下载

代码语言:javascript
复制
$ curl --limit-rate 100k http://example.com/file.zip -o file.zip

断点续传

代码语言:javascript
复制
$ curl -C - http://example.com/file.zip -o file.zip

设置超时时间

代码语言:javascript
复制
$ curl --connect-timeout 10--max-time 30 http://example.com

--connect-timeout 10:TCP 连接建立超时, 设置 curl 与目标服务器建立 TCP 连接的最大等待时间(单位:秒)。

仅针对「TCP 三次握手建立连接」这个环节,不包含:

•DNS 解析(部分 curl 版本可通过 --dns-timeout 单独控制);•连接建立后的 HTTP 请求发送、响应接收、数据传输等过程。

如果 curl 尝试连接 example.com 的服务器时,在 10 秒内没能完成 TCP 连接(比如网络中断、服务器端口未开放、目标主机不可达等),curl 会直接终止操作并返回连接超时错误,不会继续后续步骤。

--max-time 30:整个请求的总超时, 设置 curl 整个操作生命周期的最大耗时(单位:秒),是“全局超时兜底”。

覆盖 curl 从启动到结束的所有环节: DNS 解析 → TCP 连接建立 → 发送 HTTP 请求 → 接收响应头 → 接收响应体(数据传输)。

无论前面的步骤是否成功(比如 TCP 连接在 8 秒内完成,但后续接收大响应数据花了 25 秒),只要整个操作总耗时超过 30 秒,curl 会强制终止并返回总超时错误。

🎯 总结

curl 的功能远不止于此,它还支持 FTP、SMTP 等多种协议,是每个开发者和系统管理员都应该掌握的神器。 通过 httpbin.org 这个优秀的测试平台,我们可以安全地练习各种网络请求场景。

建议大家在本地环境中实际运行这些命令,去体验 curl 的强大功能。熟能生巧,相信很快你就能在网络调试中游刃有余!

本文示例基于 Linux/macOS 环境,Windows 用户建议使用 Git Bash 或 WSL 获得相同体验。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序熵 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🔍 基础网页操作
    • 查看网页源码
    • 保存网页到文件
  • 📋 查看HTTP响应信息
    • 显示完整响应头
    • 显示详细通信过程
  • 🛠️ 使用httpbin.org进行HTTP测试
    • 基本信息获取
    • 请求参数测试
    • 状态码与重定向
    • Cookie操作
    • 文件与数据测试
  • 💡 实用技巧
    • 限速下载
    • 断点续传
    • 设置超时时间
  • 🎯 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档