【发布时间】:2015-08-12 09:44:36
【问题描述】:
示例命令
curl -s -w "%{http_code} %{http_connect}" --connect-timeout 10 --max-time 50
将返回000 000 用于达到连接超时和达到最大时间。区分这两个错误的最佳方法是什么?
据我所知,唯一的区别是 -s 标志被删除的时间:
- 连接超时返回
curl: (28) connect() timed out和 - 最大超时返回
curl: (28) Operation timed out
【问题讨论】:
-
请
%{time_total}和/或%{time_connect}帮忙? -
在 n 秒内没有响应的连接上(触发
--connect-timeout)我注意到curl的详细输出中缺少 HTTP 状态代码。相反,通过--max-time阈值的已建立连接将包含此信息。您能否对详细输出进行一些检查? -
@Lewis Norton:如果
--connect-timeout被触发,则没有 HTTP 状态,因为一开始就没有连接。但是,如果--max-time不一定意味着您将拥有一个状态,因为连接可以在建立后切断,但在收到第一个 HTTP 响应之前。 -
@lcd047 实际上非常正确。我没想到。
-
你有没有找到更好的方法来区分这两种故障?