curl使用手册

查询curl耗时

curl -o /dev/null -s -w %{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_total}::%{speed_download}"
" "http://www.taobao.com"  
0.014::0.015::0.018::0.019::1516256.00  
-o:把curl 返回的html、js 写到垃圾回收站[ /dev/null] 
-s:去掉所有状态

-w:按照后面的格式写出rt
time_namelookup:DNS 解析域名[www.taobao.com]的时间 
time_commect:client和server端建立TCP 连接的时间
time_starttransfer:从client发出请求;到web的server 响应第一个字节的时间
time_total:client发出请求;到web的server发送会所有的相应数据的时间
speed_download:下周速度  单位 byte/s

解释

0.014: DNS 服务器解析www.taobao.com 的时间单位是s   
0.015: client发出请求,到c/s 建立TCP 的时间;里面包括DNS解析的时间  
0.018: client发出请求;到s响应发出第一个字节开始的时间;包括前面的2个时间  
0.019: client发出请求;到s把响应的数据全部发送给client;并关闭connect的时间  
1516256.00 :下周数据的速度  
  
1. 建立TCP连接到server返回client第一个字节的时间:0.018s - 0.015s = 0.003s  
2. server把响应数据发送给client的时间:0.019s - 0.018 = 0.01s 

构造header

在一些个例中,或许你想要在一个HTTP请求中覆盖掉默认的HTTP头或者添加一个新的自定义头部字段。例如,你或许想要重写“HOST”字段来测试一个负载均衡,或者通过重写"User-Agent"字符串来假冒特定浏览器以解决一些访问限制的问题。

为了解决所有这些问题,curl提供了一个简单的方法来完全控制传出HTTP请求的HTTP头。你需要的这个参数是“-H” 或者 “--header”。

为了定义多个HTTP头部字段,"-H"选项可以在curl命令中被多次指定。

例如:以下命令设置了3个HTTP头部字段。也就是说,重写了“HOST”字段,并且添加了两个字段("Accept-Language" 和 "Cookie")

$ curl -H 'Host: 157.166.226.25' -H 'Accept-Language: es' -H 'Cookie: ID=1234' http://cnn.com

对于"User-Agent", "Cookie", "Host"这类标准的HTTP头部字段,通常会有另外一种设置方法。curl命令提供了特定的选项来对这些头部字段进行设置:

-A (or --user-agent): 设置 "User-Agent" 字段.
-b (or --cookie): 设置 "Cookie" 字段.
-e (or --referer): 设置 "Referer" 字段.

例如,以下两个命令是等效的。这两个命令同样都对HTTP头的"User-Agent"字符串进行了更改。

$ curl -H "User-Agent: my browser" http://cnn.com
$ curl -A "my browser" http://cnn.com

post请求

下载文件

原文地址:https://www.cnblogs.com/mikeguan/p/7382052.html