前段时间,一些百度的密切关注者纷纷撰文,大谈IIS日志 200 0 64 状态乃百度封站“拨毛”之征兆。樂思蜀在此谈谈个人看法,供参考。
目前,对于 200 0 64 的观点大致分为以下几种:
会话故障,请求不可到达,并非百度封站征兆 百度封站、“拨毛”或放入沙盒 64位操作系统
樂思蜀参考了大量相关文章,虽未得出最终结论,但觉得第一种观点最合理,现分析如下。
首先来看 200 0 64 状态码的构成
200 0 64:sc-status(协议状态) sc-substatus(协议子状态) sc-win32-status(Win32状态码)
sc-status(协议状态):200 连接成功
sc-win32-status(Win32状态码):64 指定的网络名不再可用
假设请求过程
我们不妨来假设一下请求的过程:客户端向服务端发送访问请求 -> 服务端响应请求,资源存在,请求成功,发送资源(sc-status 200) -> 客户端等待所请求的资源 -> TIME_WAIT/CLOSE_WAIT -> 客户端断开连接,发送Win32状态(sc-win32-status 64)
这个假设是否成立,核心在于证实请求过程中 TIME_WAIT/CLOSE_WAIT 的存在。
支持假设的依据
1、假设的请求中 200 0 64 状态码分析:在服务端与客户端通话的过程中,因请求的资源存在,并由服务端正常发送,故sc-status为200;客户端并未正确的收到资源,返回 sc-win32-status 为64;服务器记录会话状态 200 0 64。
2、据网上资料及手中IIS日志分析结果,状态 200 0 64 的请求,其发送数据一般为0或极小的字节数,而接收的字节数一般大于发送字节数;也可以这样理解,客户端请求的数据大于服务端发送的数据。这一点也可证实上一点的说法。
3、分析结果显示,并非仅百度蜘蛛(Baiduspider)的请求出现 200 0 64,出现 200 0 64 状态的">网站用户访问也同样存在。
补充
参考相关资料时,很多提问者都提到,服务器存在这样的情况,其中有无关联望高手解答:
服务器中同时存在IIS和Apache IIS经常无故重启 服务器CPU使用经常100%
综上所述,个人认为 200 0 64 可能仅是请求失败,并不表示与百度封站有着必然的联系。
这个问题还未得出最终结果,望对此有了解的朋友留言提供建议或意见,谢谢!
附:在国外论坛看到的一段解释
sc-win32-status of 64 means "The specified network name is no longer available". It usually occurs when the client reset the connection after getting the last packet rather than doing a graceful close of the connection. In client server architecture after IIS has sent final response to client typically it waits for ACK message form client. Now certain clients instead of sending final ACK back to server, resets the connections which are not and graceful connection close and hence IIS logs “64” in IIS logs. Many clients will reset the connection when they are done with it, to free up the socket instead of leaving it in TIME_WAIT/CLOSE_WAIT. Proxies tend to do it more than others do, hence win 32 status code of 64 should be reviewed only if necessary.
作者:樂思蜀
原文:IIS日志 200 0 64 状态的分析
版权所有,转载时必须以链接形式注明作者和原出处并保留本声明。