|
通常站长朋友们会比较关心网站的404状态、301状态、302等状态,有时候302跳转可能被判为作弊,所以检测是301还是302比较重要,另 外如果首页看似可以正常访问,但返回的不是200状态码,对搜索引擎来讲可能存在一些问题!同样,如果设置网站404错误页面时,如果采用跳转,设置不 当,返回状态为302也会存在一些问题。 一般会到一些站长工具上去查询,落叶在早期制作站长工具时,通过很多方式思考过这些状态是怎么查询到的,原理是什么,PHP上怎样才能检测到网站页面的状态是不是404等。 本文作为落叶对站长工具“开源分析”系列文章的一部分,对HTTP状态查询的方法进行一些总结,希望大家有兴趣关注。 当用户在浏览器中输入一条网址,敲下回车后,浏览器向网址所在的服务器发出请求,服务器通过一些处理后,将信息返回给浏览器,浏览器再显示出来。服务器返回的信息中就有一部分包含HTTP状态码,那么就包含我们所熟悉的404状态,200状态,301状态等。 我们使用一些浏览器手抓包工具如httpwatch、finder等,通常会观察到返回的HTTP头信息大概如下:
其中大家一眼就能看到200状态。 那么从站长工具程序角度来看,大概我们需要做的是先能程序去自动访问目标页面,然后抓取返回的HTTP头信息,然后通过正则或者某些方式对返回的头信息进行处理,提取其中的状态头。 我们首先想到的是PHP自带的函数get_headers:
即可得上述状态头信息,但实际使用中WIN平以下效率非常低,查询慢不说,经常查询失败,起初落叶考虑采用循环查询多次,直至成功的方式来返回结果。效果肯定不会太理想,所以重新考虑到更好的方法。 考虑到HTTP状态检测的过程实际也是采集的过程,采集的利器curl应该有更好的方法,一翻研究了解到PHP CURL中有一个提取HTTP头的函数curl_getinfo,不需经过特殊处理直接缓存干净地HTTP头数组,并且稳定比较好。具体代码如下:
返的$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,尊重版权,转载请注明出处 |
站长工具开源分析之HTTP状态头查询原理与代码
时间:2011-09-05 12:23 来源:未知 作者:admin 点击: 次
【内容简介】 通常站长朋友们会比较关心网站的404状态、301状态、302等状态,有时候302跳转可能被判为作弊,所以检测是301还是302比较重要,另 外如果首页看似可以正常访问,但返回的不是200状态码,对搜
顶一下
(0)
0%
踩一下
(0)
0%
- 上一篇:百度快照倒退需冷静分析原因 保持蛋定
- 下一篇:避免网站被谷歌封杀需知的7个防范技巧
- 发表评论请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
-
- 最新评论 进入详细评论页>>
推荐内容
热点资讯
谷梦科技之家 | www.goomoon.com | 京ICP备11022379号

