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月前
Copy网页中F12里的请求url到postman,并且把所有参数都带过来
Copy网页中F12里的请求url到postman,并且把所有参数都带过来
103 0
|
1月前
|
缓存 应用服务中间件 nginx
你知道 HTTP 的状态码都有哪些吗?它们的含义又是什么呢?
你知道 HTTP 的状态码都有哪些吗?它们的含义又是什么呢?
50 8
|
5月前
|
安全 搜索推荐
基础入门 HTTP数据包&Postman构造&请求方法&请求头修改&状态码判断
基础入门 HTTP数据包&Postman构造&请求方法&请求头修改&状态码判断
|
6月前
|
数据采集 API
请解释什么是 HTTP 请求头,以及在爬虫中为什么要设置请求头?
请解释什么是 HTTP 请求头,以及在爬虫中为什么要设置请求头?
196 2
|
数据采集 中间件 开发者
如何使用 scrapy.Request.from_curl() 方法将 cURL 命令转换为 Scrapy 请求
我们可能需要将 cURL 命令转换为 Scrapy 请求,以便在 Scrapy 中使用 cURL 的功能。例如,我们可能想要使用 cURL 的代理设置、头部信息、表单数据等。这时候,我们可以使用 scrapy.Request.from_curl() 方法来实现这个转换。
160 0
如何使用 scrapy.Request.from_curl() 方法将 cURL 命令转换为 Scrapy 请求
|
JavaScript
HTTP header location 重定向 URL
HTTP header location 重定向 URL
|
Cloud Native Go API
使用 cURL 发送 HTTP 请求: 深入探讨与示例
使用 cURL 发送 HTTP 请求: 深入探讨与示例
343 0
|
应用服务中间件 nginx
nginx502错误和nginx服务器返回空响应体(err_empty_response)
问题:502错误有很多种情况,我这里只记录本次碰到的情况,日志如下: upstream sent duplicate header line: "Transfer-Encoding: chunked", previous value: "Transfer-Encoding: chunked" while reading response header from upstream
1495 1
|
搜索推荐
通过curl 来对比http状态码301和302
通过curl 来对比http状态码301和302
285 0
|
存储 缓存 安全
HTTP1.1响应头中最有用的部分
HTTP1.1响应头中最有用的部分
70 0