[实用]送你一个短小精悍的curl命令

来源:互联网 发布:opengl mac性能差 编辑:程序博客网 时间:2024/05/16 05:56

curl是linux下实用的工具,发送http请求,构造各种头部,用好curl命令是基础技术人员的必修课。

一、我们经常会用到(以下拿头条域名来实验):

仅获取响应头部:curl http://toutiao.com/ -I

获取详细的信息:curl -v http://www.baidu.com

alen@alen:~/GX6628/install$ curl -I www.baidu.comHTTP/1.1 200 OKServer: bfe/1.0.8.14Date: Mon, 01 Aug 2016 06:51:21 GMTContent-Type: text/htmlContent-Length: 277Last-Modified: Mon, 13 Jun 2016 02:50:28 GMTConnection: Keep-AliveETag: "575e1f74-115"Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transformPragma: no-cacheAccept-Ranges: bytes

获取请求响应的头部:

curl http://toutiao.com/ -vosa

dig下百度获取到百度解析IP:60.29.248.109然后用curl命令,指定到这个IP去请求:

curl http://toutiao.com/ -x 60.29.248.109:80 -vosa

alen@alen:~/GX6628/install$ curl  www.baidu.com -vosa* Rebuilt URL to: www.baidu.com/* Hostname was NOT found in DNS cache  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                 Dload  Upload   Total   Spent    Left  Speed  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 112.80.248.74...* Connected to www.baidu.com (112.80.248.74) port 80 (#0)> GET / HTTP/1.1> User-Agent: curl/7.35.0> Host: www.baidu.com> Accept: */*> < HTTP/1.1 200 OK< Date: Mon, 01 Aug 2016 06:44:15 GMT< Content-Type: text/html; charset=utf-8< Transfer-Encoding: chunked< Connection: Keep-Alive< Vary: Accept-Encoding< Set-Cookie: BAIDUID=FF23E9AD0737E7C0F4AEA9353BF0412B:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com< Set-Cookie: BIDUPSID=FF23E9AD0737E7C0F4AEA9353BF0412B; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com< Set-Cookie: PSTM=1470033855; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com< Set-Cookie: BDSVRTM=0; path=/< Set-Cookie: BD_HOME=0; path=/< Set-Cookie: H_PS_PSSID=1464_18281_17946_19861_11621_20744_20705; path=/; domain=.baidu.com< P3P: CP=" OTI DSP COR IVA OUR IND COM "< Cache-Control: private< Cxy_all: baidu+e52379bcbd8d9c6d4d9974b5fda6ebe3< Expires: Mon, 01 Aug 2016 06:43:35 GMT< X-Powered-By: HPHP* Server BWS/1.1 is not blacklisted< Server: BWS/1.1< X-UA-Compatible: IE=Edge,chrome=1< BDPAGETYPE: 1< BDQID: 0x9e9b170f000054fd< BDUSERID: 0< { [data not shown]100 99485    0 99485    0     0   646k      0 --:--:-- --:--:-- --:--:--  647k* Connection #0 to host www.baidu.com left intact

二、来点基础的:

-o (小写字母o) 默认情况下,curl会把整个内容显示在终端(也就是屏幕)上,可以通过-o将内容保存在某个文件下,比较常见的是指定到/dev/null ,类似一个垃圾箱;
-O (大写的O)会根据请求的文件名在本地保存;
-I 只输出响应头部;
-e 用来设定Referer;
-A 用来设定UA头部;
-H 可以用来设定请求的头部(其他模拟头部记不住别的头部就记忆这个,好用!)这个来个例子:

[实用]送你一个短小精悍的curl命令
-H头部使用时候和其他不一样的是需要添加相关的头部名称,比如这里的”Referer:”,但是直接使用-e则不需要;
-r 在发送请求的时候,可以用来指定发送range请求;

三、来点不一样的吧:

curl -s -o /dev/null -w %{time_namelookup}:%{time_connect}:%{time_starttransfer}:%{time_total}-%{http_code}-%{size_download}-%{speed_download}- http://toutiao.com/; date
对应获取到本次curl的dns时间、建连时间、首包时间、总时间、http状态码、下载大小、下载速度;

[实用]送你一个短小精悍的curl命令

单次测试可能存在误差,那我们就多测试几次:

[实用]送你一个短小精悍的curl命令

本次讲的是curl 的-w参数,好的话就转发吧!

转载:http://www.58maisui.com/2016/08/01/a/
1 0
原创粉丝点击