通常站长朋友们会比较关心网站的404状态、301状态、302等状态,有时候302跳转可能被判为作弊,所以检测是301还是302比孵化代运营较重要,另外如果首页看似可以正常访问,但返回的不是200状态码,对搜索引擎来讲可能存在一些问题!同样,如果设置网站404错误页面时,如果采用跳转,设置不当,返回状态为302也会存在一些问题。
一般会到一些站长工具上去查询,落叶在早期制作站长工具时,通过很多方式思考过这些状态是怎么查询到的,原理是什么,PHP上怎样才能检测到网站页面的状态是不是404等。
本文作为落叶对站长工具开源分析系列文章的一部分,对HTTP状态查询的方法进行一些总结,希望大家有兴趣关注。
当用户在浏览器中输入一条网址,敲下回车后,浏览器向网址所在的服务器发出请求,服务器通过一些处理后,将信息返回给浏览器,浏览器再显示出来。服务器返回的信息中就有一部分包含HTTP状态码,那么就包含我们所熟悉的404状态,200状态,301状态等。
我们使用一些浏览器手抓包工具如httpwatch、finder等,通常会观察到返回的HTTP头信息大概如下:
HTTP/1.1 200 OK
Content-Length: 35264
Content-Type: text/html
Content-Location: http://www.pmume.com/index.html
Last-Modified: Sat, 13 Aug 2011 03:27:37 GMT
Accept-Ranges: bytes
ETag: "742a1f36859cc1:6c6bc"
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Date: Sat, 13 Aug 2011 12:18:05 GMT
其中大家一眼就能看到200状态。
那么从站长工具程序角度来看,大概我们需要做的是先能程序去自动访问目标页面,然后抓取返回的HTTP头信息,然后通过正则或者某些方式对返回的头信息进行处理,提取其中的状态头。
我们首惠州网站建设公司先想到的是PHP自带的函数get_headers:
?php
$url = 'http://www.example.com';
print_r(get_headers($url));
?
即可得上述状态头信息,但实际使用中WIN平以下效率非常低,查询慢不说,经常查询失败,起初落叶考虑采用循环查询多次,直至成功的方式来返回结果。效果肯定不会太理想,所以重新考虑到更好的方法。
考虑到HTTP状态检测的过程实际也是采集的过程,采集的利器curl应该有更好的方法,一翻研究了解到PHP CURL中有一个提取HTTP头的函数curl_getinfo,不需经过特殊处理直接缓存干净地HTTP头数组,并且稳定比较好。具体代码如下:
?php
$url=http://www.***.com;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt ($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
curl_setopt($curl, CURLOPT_HEADER, 1);//设置采集HTTP头信息
curl_setopt($curl, CURLOPT_NOBODY, 0);//设置不采集内部部分
curl_setopt($curl,CURLOPT_ENCODING, "gzip, deflate");
$data=curl_exec($curl);
$m=curl_getinfo($curl);//处理返回内容获到HTTP头数组信息
curl_close($curl);
if(empty($data)){
return 'fail';
}
echo $m['http_code'];
}
?
返的$m数组中直接输出$m[‘http_code’]即得到了HTTP状态头。
当然CURL函数的使用,需要服务器开启PHP_CURL扩展,下面是对CURL扩展开启方法的介绍:
1、 将PHP文件夹下的三个文件php_curl.dll,libeay32.dll,ssleay32.网站建设公司dll复制到system32下;
2、 将php.ini(c:WINDOWS目录下)中的;extension=php_curl.dll中的分号去掉;
3、 重启apache或者IIS。
作者:落叶(t.qq.com/guohui) 网站:http://www.pmume.com
落叶原创,首发CHINAZ,尊重版权,转载请注明出处
南京牧狼文化传媒有限公司简介:
牧狼传媒,牧者之心,狼者之性,以牧之谦卑宽容之心待人,以狼之团结无畏之性做事!
公司注册资金100万,主营众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放以及电商营销推广全案等相关业务,致力于为客户提供更有价值的服务,创造让用户满意的效果!
为百度官方及其大客户、苏宁易购、金山WPS秀堂、美的、创维家电、新东方在线、伊莱克斯、宝丽莱等国内国外知名品牌服务过,服务经验丰富!同时,公司也是南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位,可以为您提供更好的服务!
主营项目:众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放、竞价托管、网站优化、电商代运营等
合作客户:百度、苏宁易购、饿了么、美的、创维家电、新东方在线、宝丽莱、金山WPS秀堂、伊莱克斯
资质荣誉:百度商业服务市场2017年度最佳图片服务商、南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位、八戒通TOP服务商、"易拍即合杯"H5创意大赛"三等奖"。