curl 是什么?以及和 HTTP 的关系
curl 是一个命令行网络请求工具,用于通过网络访问服务器资源,例如:
- 下载文件
- 调用 API
- 测试网络连接
- 查看服务器返回的数据
curl 和 HTTP 的关系:
- curl 是一个客户端工具
- HTTP 是 curl 经常使用的一种通信方式
- curl 可以通过 HTTP 向服务器发送请求,并接收服务器返回的数据
简单理解:
curl 是工具,HTTP 是它用来和服务器通信的方式。
例如:
curlhttps://www.baidu.com表示 curl 通过 HTTP 请求服务器,并获取返回内容。
常用 curl 配置选项
| 参数 | 作用 | 示例 |
|---|---|---|
-v | 显示详细请求过程(调试常用) | curl -v https://example.com |
-i | 显示 HTTP 响应头 | curl -i https://example.com |
-I | 只获取响应头(HEAD 请求) | curl -I https://example.com |
-L | 自动跟随重定向 | curl -L http://example.com |
-o | 保存输出到指定文件 | curl -o file.zip URL |
-O | 使用服务器原文件名保存 | curl -O URL |
-s | 静默模式,不显示进度 | curl -s URL |
-S | 静默模式下显示错误信息 | curl -sS URL |
-f | HTTP 错误时返回失败 | curl -f URL |
-X | 指定请求方法 | curl -X POST URL |
-H | 添加请求头 | curl -H "Content-Type: application/json" URL |
-d | 发送请求数据 | curl -d "name=test" URL |
-u | 用户认证 | curl -u user:pass URL |
--proxy | 使用代理 | curl --proxy http://127.0.0.1:7890 URL |
--connect-timeout | 设置连接超时时间 | curl --connect-timeout 5 URL |
常见组合
1. 下载并保存文件
curl-Ohttps://example.com/file.zip2. 查看网站响应信息
curl-Ihttps://example.com常用于检查:
- 网站是否正常
- HTTPS 是否有效
- HTTP 状态码
3. 调试网络请求
curl-vhttps://example.com查看:
- DNS
- TLS 连接
- 请求头
- 响应头
4. 调用 API
GET:
curlhttps://api.example.com/usersPOST:
curl-XPOST https://api.example.com/users\-H"Content-Type: application/json"\-d'{"name":"Tom"}'5. 使用代理
例如通过本地代理:
curl--proxyhttp://127.0.0.1:7890 https://example.com6. Docker 安装命令中的组合参数
之前看到:
curl-fsSLhttps://get.docker.com|sh其中:
-f 请求失败时停止 -s 静默模式 -S 显示错误 -L 跟随跳转这是 Linux 中非常常见的 curl 参数组合。
记忆重点:
-v→ 看过程(排错)-I→ 看响应头-L→ 跟随跳转-o/-O→ 保存文件-X→ 指定请求方式-H→ 添加请求头-d→ 发送数据--proxy→ 使用代理
这些参数基本覆盖了日常 Linux、Docker、API 调试中 90% 的 curl 使用场景。