网站建设需求量大做视频网站赚做视频网站赚
一 时间
① --connect-timeout 连接超时时间

② -m | --max-time 数据最大传输时间
-m: 限制curl '完成时间(overall time limit)'-m,--max-time '<seconds>' 整个'交互完成'的超时时间场景: 通过设置'-m'参数,可以避免'请求时间过长'而导致的'超时'错误 

curl -m 10  ... 
![]()
批量测试主机的连通性
二 -w 相关变量
1、'\n' --> '换行'              --> 支持其它的'制表符'2、不同的'curl版本','变量不同'3、通过变量能'判断什么'? 
① -w | --write-out

1、'基本'描述2、'基本'语法 

3、下面涉及'变量解读' 
② url_effective
含义:  最终'请求'的url  --> 可能会涉及'多次重定向Location' 
![]()
③ http_code
同'response_code':  http的响应'状态码' 
![]()

④ content_type
说明: '请求'的'content_type' 

⑤ http_connect
说明: 代理涉及的'CONNECTION'请求的'响应状态码' 

⑥ filename_effective

curl 执行结果最终'写入的文件名',当加上了 '-o、-O' 才有'意义'. 
![]()
⑦ 上传和下载

⑧ 本地和远程的 ip和端口

![]()
⑨ 七个时间
通过curl命令分析http接口请求各阶段的耗时等

1、time_namelookup  '域名解析'时间 
![]()
2、time_connect 从'开始到建立TCP连接'完成所用时间
TCP 连接建立的时间: 就是'三次握手'的时间解读:1、连接时间,从'0'开始到建立TCP连接完成所用时间,'包括'前边'DNS解析'时间2、如果需要'单纯的得到连接'时间,用这个time_connect时间'减去'前边time_namelookup时间 
![]()
3、time_appconnection  'SSL/SSH'其记录的值是从'开始请求到应用层协议握手完成'的时间,也就是'从0开始'的一个'时间偏移量'SSL 协议处理时间: 'time_appconnect - time_connect' 
![]()

4、time_pretransfer  从'开始到准备传输'的时间 
![]()
5、time_redirect 

6、time_starttransfer描述: 发送请求'第一个字节'到到'返回第一个字节'之间的时间 --> '存疑' 
![]()
curl时间统计参数time_starttransfer含义以及在文件上传场景下可能的误解

7、time_total说明:总时间,按'秒'计,精确到'小数点后三位'time_total: '整个请求所消耗的时间',包含dns解析、tcp握手和ssl握手的时间 
![]()
8、低版本curl'不支持'相关变量备注: '报错'信息如下 
![]()
9、结合'shell'变量 
![]()
10、以文件的形式,增强'可读性'curl -w "@var.txt" http://www.wzj.com/ceshi 

curl -o /dev/null -s -w "\n\nDNS查询时间: %{time_namelookup} TCP建连时间: %{time_connect} SSL建连时间: %{time_starttransfer} 首包响应时间:%{time_starttransfer} 总耗时: %{time_total}\n" https://www.baidu.com 
三 curl的配置文件

① 默认行为
说明: 默认不存在'~/.curlrc'此文件 

② -K
-K/–config: 指定'配置'文件,从配置文件中'读取参数'说明: '自定义'加载'配置选项'文件注意: 配置文件的'注释'、'内容格式'-K后接配置文件名,如果使用 '-' 符号,则通过'stdin'输入配置echo "user = user:passwd" | curl -K - https://www.baidu.com 

查找顺序: 先'检查CURL_HOME' --> 类Unix系统上,它'还会'尝试从'主目录'中加载.curlrc文件 
③ -q
disbale '禁止'加载配置选项文件 

使用 curl --resolve 和 http 代理
说明: 通过'--environment'传递变量,可以使用-w '引用变量' 

④ 代理补充
curl 8.3.0 的 variable
