cURL 命令速查表

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 命令:

  1. 详细输出:curl -v https://example.com 此命令提供有关请求和响应的详细信息,包括头部和连接信息。

  2. 完整跟踪转储:curl --trace - https://example.com 此命令输出所有入站和出站数据的十六进制转储,提供通信的全面视图。

  3. 带时间戳的跟踪:curl --trace - --trace-time https://example.com 此命令在跟踪输出中添加时间戳,有助于分析与时间相关的问题。

  4. 仅打印响应头部:curl -s -o /dev/null -D - https://example.com 此命令仅显示响应头部,适用于快速头部分析。

  5. 仅打印请求头部:curl -v -s -o /dev/null --stderr - https://example.com | grep '^>' 此复杂命令过滤出仅请求头部,有助于检查发送的内容。

  6. 使用 Pantheon 调试器:curl -I -H "Pantheon-Debug:1" https://example.com 此命令使用 Pantheon 的调试头部获取有关请求的附加信息,适用于 Pantheon 托管网站。

  7. 强制使用 HTTP/2 协议:curl --http2 https://example.com 此命令确保使用 HTTP/2 协议,可以与 -I 结合使用以验证 HTTP/2 支持。

  8. 使用 netcat 调试: 在一个终端中:nc -l 1234 在另一个终端中:curl http://127.0.0.1:1234 这允许您查看 curl 正在发送的确切内容,适用于负载调试。

这些高级命令提供了强大的调试功能,使开发人员能够检查 HTTP 通信的各个方面并解决复杂问题。

常见 cURL 用例

curl 是一个功能强大的命令行工具,具有许多应用。以下是 curl 的一些常见用例:

网络交互

  1. 下载文件:curl 可以从 URL 下载文件。
  2. 网络爬虫:curl 可以获取网页内容用于爬虫目的。
  3. 测试网站:curl 有助于检查网站是否可访问并获取其内容。

API 交互

  1. 发送 API 请求:curl 支持各种 HTTP 方法(GET、POST、PUT、DELETE)用于与 API 交互。
  2. 测试 API 端点:curl 提供了一种快速测试和调试 API 端点的方法,无需专用 API 客户端。

网络故障排除

  1. 检查连接性:curl 可用于验证网络连接并排除问题。
  2. 测试 DNS:curl 允许强制使用特定的 DNS 服务器以排除 DNS 相关问题。
  3. 检查头部信息:curl 可以显示 HTTP 头部信息,这对于调试很有用。

数据传输

  1. FTP 操作:curl 支持使用文件传输协议(FTP)进行文件传输。
  2. SMTP 交互:curl 可用于通过简单邮件传输协议(SMTP)发送电子邮件。

安全和认证

  1. SSL 连接:curl 支持使用 SSL/TLS 进行安全连接。
  2. 认证:curl 可以处理各种认证方法,包括基本认证和客户端证书。

开发和调试

  1. 模拟不同的 HTTP 方法:curl 允许开发人员轻松测试各种 HTTP 方法。
  2. 详细日志: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 命令和脚本,您可以有效地衡量和监控网站性能,帮助您识别潜在瓶颈并优化加载时间。

有用的链接