curl用法:获取网站的header头及状态码

简介:

curl命令最常用的方法是使用参数-I 获取域名或IP的header信息,包括HTTP返回状态码,server类型,文本类型,缓存时间等等;监控web服务时也常用此方法判断web服务是否正常;


监控web服务,可以使用curl获取网站的header头,查看返回值是否是200 OK,作为判断web服务正常的一个标准;

使用curl -I 可以获取,如果提取第一行信息时,会出现一些不需要的信息,那我们该怎么取呢?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[baby@localhost ~]$ curl -I mofansheng.blog.51cto.com
HTTP /1 .1 200 OK
Server: Tengine
Date: Thu, 15 Oct 2015 06:10:17 GMT
Content-Type: text /html
Connection: keep-alive
Keep-Alive: timeout=10
Vary: Accept-Encoding
Set-Cookie: PHPSESSID=8c0bac037cf2cfd8b87e7dde079eb3bf; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: lastvisit=0%091444889417%09%2Findex.php%3F; expires=Fri, 14-Oct-2016 06:10:17 GMT; path=/; domain=.blog.51cto.com
If-Modified-Since: Sat, 10 Oct 2015 16:00:00 GMT
Load-Balancing: web48
Load-Balancing: web48



使用grep过滤第一行,发现出来很多不需要的信息

[baby@localhost ~]$ curl -I mofansheng.blog.51cto.com|grep "OK"

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0

HTTP/1.1 200 OK


解决方法为:

 man curl    查看是否有具体参数可以达到我们需要的结果;

-s/--silent

Silent  or  quiet mode. Don’t show progress meter or error messages. 

-s 是沉默,静默模式,意思为不输出进度表或错误信息;


1
2
[baby@localhost ~]$ curl -I -s mofansheng.blog.51cto.com| grep  "OK" 
HTTP /1 .1 200 OK


一条命令取出200的方法:

1
2
[root@yonglinux ~] # curl -s -w "%{http_code}" -o /dev/null  www.baidu.com
200



其他方法:可以把错误输出定向到系统黑洞里,再进行过滤

1
2
3
4
[baby@localhost ~]$ curl -I mofansheng.blog.51cto.com 2> /dev/null | grep  "OK" 
HTTP /1 .1 200 OK
[baby@localhost ~]$ curl -I mofansheng.blog.51cto.com 2> /dev/null | head  -n1
HTTP /1 .1 200 OK






本文转自 模范生 51CTO博客,原文链接:http://blog.51cto.com/mofansheng/1704117,如需转载请自行联系原作者

目录
相关文章
|
6月前
|
Cloud Native Go API
使用 cURL 发送 HTTP 请求: 深入探讨与示例
使用 cURL 发送 HTTP 请求: 深入探讨与示例
151 0
|
6月前
|
XML 存储 数据格式
【JavaWeb】HTTP状态码100、200、300、400、500、600的含义
【JavaWeb】HTTP状态码100、200、300、400、500、600的含义
113 0
|
10月前
|
搜索推荐
通过curl 来对比http状态码301和302
通过curl 来对比http状态码301和302
133 0
HTTP状态码(HTTP Status Code)
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。
164 0
|
JavaScript
HTTP状态码429的含义
今天我写了一个很简单的nodejs应用,使用module request同时向jianshu网站发起数个异步请求,通过分页的方式向简书请求我所有的文章列表。
354 0
HTTP状态码429的含义
|
Java
http请求不带referer的解决方法
因业务需要,需要从<a href="https://www.fgba.net/" target="_blank">富贵论坛</a>收集数据到后台,然后再次重定向第三方jsp页面,但是在项目中,无法如何请求都无法跳转成功,每次都是404
859 0
|
开发框架 .NET 网络安全
HTTP错误列表
HTTP错误列表
443 0
HTTP错误信息整理,HTTP错误代码,HTTP错误页详读
一、HTTP码应码Venus'Blog响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行。响应码分五种类型,由它们的第一位数字表示:1.1xx:信息,请求收到,继续处理2.2xx:成功,行为被成功地接受、理解和采纳3.3xx:重定向,为了完成请求,必须进一步执行的动作4.4xx:客户端错误,请求包含语法错误或者请求无法实现5.5xx:服务器错误,服务器不能实现一种明显无效的请求下表显示每个响应码及其含义:Venus'Blog 所有 HTTP 状态代码及其定义。
1124 0
|
Web App开发
http状态码含义
转载: https://blog.csdn.net/dufufd/article/details/53112184 作为一个互联网开发人员对于一些服务器返回的HTTP状态的意思都必须是了如指掌的,只有将这些状态码一一弄清楚,工作中遇到的各种问题才能够处理的得心应手。
1105 0
|
网络协议
RFC2616-HTTP1.1-Status Code(状态码规定部分—单词注释版)
part of Hypertext Transfer Protocol -- HTTP/1.1RFC 2616 Fielding, et al. 10 Status Code Definitions Each Status-Code is described below, including a d...
1228 0