【问题标题】:Reliability of using HEAD Request to Check Web Page Status使用 HEAD 请求检查网页状态的可靠性
【发布时间】:2011-09-08 16:14:24
【问题描述】:

我一直在测试我编写的一个小应用程序,它基本上执行 http HEAD 请求来检查页面是否存在、重定向等。我注意到有些页面对 HEAD 的响应与对 GET 请求的响应不同。例如:

curl -I http://www.youtube.com/bbcpersian

返回 404。它肯定存在。一些(相当主要的)网站甚至返回 500 错误以响应 HEAD - 我猜这不是故意的。

所以我的问题是:

  • 除了配置问题或网站管理员想要阻止机器人之外,是否有任何充分的理由说明某些网站(或网站中的页面)会出现这种行为?
  • 如果我不能依赖 HEAD 请求,我是否只需要执行 GET 并在获得标头后中止请求。这感觉有点“错误”……

虽然以 % 表示具有这种行为的页面数量很少,但最终会手动调查每个误报,这会导致大量工作浪费。

【问题讨论】:

    标签: http http-headers web-crawler http-head


    【解决方案1】:

    经过一段时间和更多调查后,我可以回答自己的问题:

    • 许多“在野外”的站点对 HEAD 请求的响应不正确。我建议一些网站管理员配置他们的网站以响应除了 200 的 HEAD 请求之外的任何内容,因为他们认为 HEAD 请求与不良机器人相关联。我无法验证推理,但我可以说大量网站(或网站上的页面 - 请参阅我在 youtube 上的原始观点)对 HEAD 请求的响应不正确。
    • GET 检查页面是否真的存在(或不重定向等)的唯一可靠方法。

    【讨论】:

      【解决方案2】:

      您正在尝试的网址: http://www.youtube.com/bbcpersian 不是正确的 URL,因此它给出了 404。

      正确的网址是: https://www.youtube.com/user/BBCPersian 它给了 200。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-04
        • 1970-01-01
        • 2011-03-10
        • 2013-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多