cURL 命令速查表
cUrl 常用命令及参数
以下是 最常用 cURL 命令 及其参数的速查表:
上面的图片由 Flux - 文本到图像 AI 模型 生成。
基本 cURL 用法
- 下载文件:
curl http://example.com/file.zip -o file.zip
- 下载多个文件:
curl -O URL1 -O URL2
- 跟随重定向:
curl -L http://example.com/file
- 仅显示头部信息:
curl -I http://example.com
认证
- 基本认证:
curl -u username:password http://example.com
- 使用 .netrc 文件:
curl --netrc-file .netrc http://example.com
HTTP 方法
- POST 请求:
curl -X POST -d 'name=value' http://example.com
- PUT 请求:
curl -X PUT -d @file http://example.com
- 自定义方法:
curl -X METHOD http://example.com
头部和数据
- 添加自定义头部:
curl -H "X-Header: Value" http://example.com
- 发送 JSON 数据:
curl -H "Content-Type: application/json" -d '{"key":"value"}' http://example.com
- 发送表单数据:
curl -F "key=value" -F "file=@localfile" http://example.com
SSL/TLS 选项
- 忽略 SSL 证书验证:
curl -k https://example.com
- 使用客户端证书:
curl --cert cert.pem --key key.pem https://example.com
代理和网络
- 使用代理:
curl -x proxysever.server.com:PORT http://example.com
- 限制下载速度:
curl --limit-rate 1000B -O http://example.com/file
输出控制
- 静默模式:
curl -s http://example.com
- 详细模式:
curl -v http://example.com
- 将输出写入文件:
curl -o file.html http://example.com
- 使用远程文件名保存:
curl -O http://example.com/file.zip
其他
- 恢复失败的下载:
curl -C - -o partial_file.zip http://example.com/file.zip
- 设置超时时间:
curl --connect-timeout 10 http://example.com
- 使用配置文件:
curl -K config_file http://example.com
此速查表涵盖了最常用的 cURL 命令及其参数,为各种 HTTP 操作和数据传输提供了快速参考。
高级 cURL 命令
以下是一些用于调试的高级 curl 命令:
-
详细输出:
curl -v https://example.com
此命令提供有关请求和响应的详细信息,包括头部和连接信息。 -
完整跟踪转储:
curl --trace - https://example.com
此命令输出所有入站和出站数据的十六进制转储,提供通信的全面视图。 -
带时间戳的跟踪:
curl --trace - --trace-time https://example.com
此命令在跟踪输出中添加时间戳,有助于分析与时间相关的问题。 -
仅打印响应头部:
curl -s -o /dev/null -D - https://example.com
此命令仅显示响应头部,适用于快速头部分析。 -
仅打印请求头部:
curl -v -s -o /dev/null --stderr - https://example.com | grep '^>'
此复杂命令过滤出仅请求头部,有助于检查发送的内容。 -
使用 Pantheon 调试器:
curl -I -H "Pantheon-Debug:1" https://example.com
此命令使用 Pantheon 的调试头部获取有关请求的附加信息,适用于 Pantheon 托管网站。 -
强制使用 HTTP/2 协议:
curl --http2 https://example.com
此命令确保使用 HTTP/2 协议,可以与 -I 结合使用以验证 HTTP/2 支持。 -
使用 netcat 调试: 在一个终端中:
nc -l 1234
在另一个终端中:curl http://127.0.0.1:1234
这允许您查看 curl 正在发送的确切内容,适用于负载调试。
这些高级命令提供了强大的调试功能,使开发人员能够检查 HTTP 通信的各个方面并解决复杂问题。
常见 cURL 用例
curl 是一个功能强大的命令行工具,具有许多应用。以下是 curl 的一些常见用例:
网络交互
- 下载文件:curl 可以从 URL 下载文件。
- 网络爬虫:curl 可以获取网页内容用于爬虫目的。
- 测试网站:curl 有助于检查网站是否可访问并获取其内容。
API 交互
- 发送 API 请求:curl 支持各种 HTTP 方法(GET、POST、PUT、DELETE)用于与 API 交互。
- 测试 API 端点:curl 提供了一种快速测试和调试 API 端点的方法,无需专用 API 客户端。
网络故障排除
- 检查连接性:curl 可用于验证网络连接并排除问题。
- 测试 DNS:curl 允许强制使用特定的 DNS 服务器以排除 DNS 相关问题。
- 检查头部信息:curl 可以显示 HTTP 头部信息,这对于调试很有用。
数据传输
- FTP 操作:curl 支持使用文件传输协议(FTP)进行文件传输。
- SMTP 交互:curl 可用于通过简单邮件传输协议(SMTP)发送电子邮件。
安全和认证
- SSL 连接:curl 支持使用 SSL/TLS 进行安全连接。
- 认证:curl 可以处理各种认证方法,包括基本认证和客户端证书。
开发和调试
- 模拟不同的 HTTP 方法:curl 允许开发人员轻松测试各种 HTTP 方法。
- 详细日志:curl 的详细模式提供有关请求-响应周期的详细信息,有助于调试。
这些用例展示了 curl 作为网络交互、API 测试、网络故障排除和开发任务工具的灵活性。
使用 cURL 进行网站性能测试
curl 是一个强大的工具,可用于测试网站性能。以下是使用它来衡量网站加载速度各个方面的方法:
基本性能测试
要获得网站加载时间的简单度量,使用以下命令:
curl -o /dev/null -s -w "Total Time: %{time_total}s\n" "https://example.com"
此命令将输出获取网站所需的总时间[2]。
详细性能指标
为了进行更全面的分析,可以使用 curl 来测量多个性能指标:
curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://example.com
此命令提供了加载过程中不同阶段的分解,包括 DNS 查找时间、连接时间和总时间[1]。
高级指标
为了进行更详细的分析,可以包括其他指标:
curl -o /dev/null -w "HTTP Version: %{http_version}\nPage Size: %{size_download} bytes\nResponse Code: %{response_code}\nDNS Lookup: %{time_namelookup} sec\nConnect Time: %{time_connect} sec\nTime to First Byte: %{time_starttransfer} sec\nTotal Time: %{time_total} sec\n" -s https://example.com
此命令包括有关 HTTP 版本、页面大小和响应代码的信息[3]。
多次请求基准测试
为了测试一致性或监控随时间推移的性能,可以使用循环进行多次请求:
for i in {1..5}; do curl -o /dev/null -s -w "Request $i Total Time: %{time_total}\n" https://example.com; done
这将运行五次测试并显示每次请求的总时间[3]。
创建性能测试脚本
您可以创建一个简单的 bash 脚本来自动化这些测试并保存结果:
#!/bin/bash
curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null URL > webspeedtest_"$(date)"
将 “URL” 替换为您要测试的网站。此脚本将在一个带时间戳的文件中保存结果[5]。
通过使用这些 curl 命令和脚本,您可以有效地衡量和监控网站性能,帮助您识别潜在瓶颈并优化加载时间。