最近设置 Apache 主机的时候遇到了一个问题。使用百度站长工具中的 抓取诊断工具 时,一直不能正常抓取网页。
显示:连接失败。
真让人窝火。反复试,终于找到了原因。打开网页的 HTTP Headers 里面多了一个:upgrade: hc,h2c
。以前没有这个。最后终于找到了源头:原来是在 CDN 中开启了 HTTP/2 功能所致。
HTTP/2 即超文本传输协议 2.0,是下一代 HTTP 协议,支持包括采用二进制格式传输数据、对消息头采用 HPACK 进行压缩传输、多路复用等特性。
但是,如果你的主机不支持,而 CDN 又开启了该功能,就会带进来 upgrade: hc,h2c
,导致出现 HTTP状态码为 100 这样的情况,使百度蜘蛛不能正常抓取。这里只是说的百度蜘蛛,对于必应、谷歌的蜘蛛而言,完全没问题。
应该关闭 HTTP/2 功能,或者在 CDN 设置中删除 upgrade
头。或者在 Apache 主机的 .htaccess
文件进行设置删除。
本文禁止住转载。任何形式转载请联系作者(时光在路上 www.timezls.com)。时光在路上保留所有权利