[实用]送你一个短小精悍的curl命令
Posted alen_xie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[实用]送你一个短小精悍的curl命令相关的知识,希望对你有一定的参考价值。
curl是linux下实用的工具,发送http请求,构造各种头部,用好curl命令是基础技术人员的必修课。
一、我们经常会用到(以下拿头条域名来实验):
仅获取响应头部:curl http://toutiao.com/ -I
获取详细的信息:curl -v http://www.baidu.com
alen@alen:~/GX6628/install$ curl -I www.baidu.com
HTTP/1.1 200 OK
Server: bfe/1.0.8.14
Date: Mon, 01 Aug 2016 06:51:21 GMT
Content-Type: text/html
Content-Length: 277
Last-Modified: Mon, 13 Jun 2016 02:50:28 GMT
Connection: Keep-Alive
ETag: "575e1f74-115"
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Pragma: no-cache
Accept-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 可以用来设定请求的头部(其他模拟头部记不住别的头部就记忆这个,好用!)这个来个例子:
-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 的-w参数,好的话就转发吧!
转载:http://www.58maisui.com/2016/08/01/a/以上是关于[实用]送你一个短小精悍的curl命令的主要内容,如果未能解决你的问题,请参考以下文章