3

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

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

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

所以我的问题是:

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

虽然像这样表现的页面数量很少,但每个误报最终都是手动调查的,这会导致大量的工作浪费。

4

2 回答 2

7

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

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

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

正确的 URL 是: https://www.youtube.com/user/BBCPersian它给出 200。

于 2019-05-31T06:43:16.560 回答