一般网页状态为200都是正常的,还有一种情况是网页做了跳转,这种情况下网页状态码为301,http的head里会有lcation记录跳转的地址
这个方法不太好用,取出来的值后面会带回车键值可以将值输出到文本里就会看到末尾有带回车键值,需要使用tr命令去除,输出的内容也会有多余的查询值,但是后面加上|grep 200|wc -l命令后可以通过统计的值是否等于0来判断也好用
取状态码
curl -i www.baidu.com|grep HTTP|awk '{print $2}'|tr -d '\r'
使用脚本执行后输出的值会产生以下的问题,就是上面说的一样
取url重定向后的地址
curl -i www.baidu.com|grep Location:|awk '{print $2}' |tr -d '\r'
以下方法可以直接取到想要的值不会有多余的输出,也不用更改格式什么的,可以直接用来做判断
取状态码
curl -s -o /dev/null -w "%{http_code}" www.baidu.com
-s
选项表示静默模式
-o /dev/null
选项表示将输出重定向到/dev/null
-w "%{http_code}"
选项表示只输出状态码,除了%{http_code}
,curl命令还支持其他占位符
-w
选项用于自定义curl命令的输出格式
注意,-w
选项只能与-o
选项(输出到文件)或-s
选项(静默模式)一起使用,否则curl命令将输出状态码以外的其他信息
取url重定向后的地址
curl -s -o /dev/null -w "%{redirect_url}" -I www.baidu.com | tail -n 1
-I
选项表示只获取HTTP头信息
-w "%{redirect_url}"
选项表示只输出重定向后的URL
下面展示一下-w的更多用法
%{url_effective}
: 输出请求的URL
%{time_total}
: 输出请求总时间,包括DNS解析、连接、传输和重定向等时间
%{time_namelookup}
: 输出DNS解析时间
%{time_connect}
: 输出连接建立时间
%{time_starttransfer}
: 输出从请求开始到第一个字节被传输的时间
%{size_download}
: 输出下载的数据大小
%{speed_download}
: 输出下载速度
-i 输出http head与网页内容
-I 只输出httt head