为什么服务器不允许 HTTP HEAD?

gec*_*kon 5 webserver http http-head

我发现有些服务器以 HTTP 405 响应请求HEAD(或另一个状态代码,包括 404,这在 IMO 中令人困惑,但这现在并不重要),即使GET请求以 HTTP 200 响应。HTTP 405定义为...

405 不允许的方法

Request-URI 标识的资源不允许使用 Request-Line 中指定的方法。响应必须包含一个允许标头,其中包含所请求资源的有效方法列表。

好吧,我查看了Allow标题,发现我可以用来GET获取资源(尽管我只想知道资源是否存在)。问题解决了。

但是,我的问题是......为什么服务器会不允许该HEAD方法?优点是什么?是否有可能的安全原因?

Jas*_*son 5

我认为这是因为当他们的仅 HTTPS 站点通过 HTTP 收到大量 HEAD 请求时,他们收到的日志中充满了“所请求的资源只能通过 SSL 访问”错误。我认为他们将“方法”与“协议”混为一谈,因此认为 405 是有道理的。

请参阅这篇文章,了解有人询问该问题并被告知给出 405 的示例。