文章分类: 故障排除
本条还可参阅:

利用cURL排查请求问题

cURL是一个发送HTTP/HTTPS请求的命令行工具,可在故障排除时使用:

HTTP/HTTPS性能
HTTP错误响应
HTTP标头
API
对比服务器/代理的响应
SSL证书

本文将指导您利用cURL排查请求问题。

指南



Windows中不默认安装cURL,需要使用 安装向导

运行以下命令,向您的网站发送标准的HTTP GET请求(将www.example.com替换为您的域名和主机名):

curl -svo /dev/null http://www.example.com/


此示例cURL命令会返回详细列出HTTP响应和请求标头的输出,但会丢弃页面正文输出。cURL输出确认HTTP响应,以及ShopBase当前是否在代理站点的流量。

请查看 cURL命令选项 以了解其他功能。

请参阅以下列表来获取HTTP错误、性能、缓存和SSL/TLS证书等故障排除提示:

HTTP错误


排查ShopBase响应中的HTTP错误时,请通过直接将请求发送到源站服务器来测试问题是否源自您的源站。要排查HTTP错误,请直接对源站服务器IP地址(绕过ShopBase代理)运行cURL:

curl -svo /dev/null http://example.com --connect-to ::203.0.113.34


如果您有多个源站服务器,请逐一测试以确保没有响应差异。如果在直接连接源站服务器时观察到问题,请联系您的主机提供商来获取帮助。

性能


cURL可以通过 -w 或 --write-out cURL 选项衡量HTTP/HTTPS请求的延迟或性能下降。以下示例cURL衡量了请求事务中的多个性能参数,如TLS握手时长、DNS 查询、重定向和传输等:

curl -svo /dev/null https://example.com/ -w "\nContent Type: %{content_type} \
\nHTTP Code: %{http_code} \
\nHTTP Connect:%{http_connect} \
\nNumber Connects: %{num_connects} \
\nNumber Redirects: %{num_redirects} \
\nRedirect URL: %{redirect_url} \
\nSize Download: %{size_download} \
\nSize Upload: %{size_upload} \
\nSSL Verify: %{ssl_verify_result} \
\nTime Handshake: %{time_appconnect} \
\nTime Connect: %{time_connect} \
\nName Lookup Time: %{time_namelookup} \
\nTime Pretransfer: %{time_pretransfer} \
\nTime Redirect: %{time_redirect} \
\nTime Start Transfer: %{time_starttransfer} \
\nTime Total: %{time_total} \
\nEffective URL: %{url_effective}\n" 2>&1


如上例中所示,在每个变量前用 \n 添加新行可以获得更加清晰的结果。否则,所有指标都会一起显示在一行之中。

缓存


cURL可以帮助检查影响缓存的HTTP响应标头。特别是,进行ShopBase缓存故障排除时需要检查多个HTTP标头:

CF-Cache-Status
Cache-control/Pragma
Expires
Last-Modified
S-Maxage

SSL/TLS 证书


使用cURL查看证书:以下cURL命令了显示ShopBase在HTTPS请求期间提供的SSL证书(将www.example.com替换为您的域名和主机名):

curl -svo /dev/null https://www.example.com/ 2>&1 | egrep -v "^{.*$|^}.*$|^* http.*$"


2>&1 | egrep -v "^{.$|^}.$|^ http.*$" *清理并解析TLS握手和证书信息。

要显示原始证书(假设已安装了证书),请将下面的203.0.113.34替换为您源站服务器的实际IP地址,并将www.example.com替换为您的域名和主机名:

curl -svo /dev/null https://www.example.com --connect-to ::203.0.113.34 2>&1 | egrep -v "^{.*$|^}.*$|^* http.*$"


测试TLS版本:如果要进行浏览器支持故障排除或确认支持的TLS版本有哪些,您可以在cURL命令中添加下列选项之一来使用cURL测试具体的TLS版本:

--tlsv1.0
--tlsv1.1
--tlsv1.2
--tlsv1.3

关联页面



收集信息以排查站点问题

更新于: 13/09/2022

这篇文章有帮助吗?

分享您的反馈意见

取消

谢谢!