Web服务器应该如何处理带有不正确主机头的请求?

我收到一些请求到我的网站与Host头设置不正确(最常见的IP地址,而不是域名)。 目前我正在返回400 Bad Request 。 我想回到301302 ,但不知道这是一个好主意。

当客户端错误地设置Host头时,最佳做法是什么?

我会说,除了一些机器人和其他自动扫描仪,一切都应该发送一个有效的主机字段。

今天的HTTP / 1.0(没有主机头)的用法基本上是零,再次使用它的东西可能不是你想要或者需要在你的网站上。

所以对我来说,301或302这些请求的价值是有限的,他们可能最终会跟着,并再次击中你的网站浪费你的资源。

最后你可能花太多时间担心这个。 垃圾请求是运行一个面向公众的互联网网站的一部分,大部分情况下,它们比浪费时间更容易被忽视。 如果你担心,那么你可以安装一个WAF来过滤这种事情。

什么是您的networking服务器的当前行为,当您处理丢失的Host:标头和/或Host:未知DNS名称的头的请求时,您是否显示实际的网站?

如果您目前正在显示一个实际网站,并希望在进行此操作之前进行更改,则可能需要首先调查是否有以下情况:

  • 仍然使用HTTP协议级别1.0的真实客户端,它还没有Host:头文件。

如果是这种情况,那么您可能需要通过保持当前的行为(至less对于那些特定的客户)来适应这些行为。

如果仅仅是为了保留networking扫描器/networking爬虫/机器人在你的真实站点的日志中创build的一些垃圾,可以certificate,在显示一个实际的网站来响应无效的请求时是有一定的价值的。