HTTP服务器被请求一个它不托pipe的域。 要回复什么?

我试图创build一个使用node.js的web服务器,(只是作为一个学习项目,不用于生产,我知道expressjs),我不知道如何在我提到的情况下标题?

我试图find一个HTTP代码来表明这个错误(4XX?),但似乎没有任何? 生产服务器如何回复这个问题?

如果我问服务器托pipegoogle.com为asdasdas.com,它回答与404,但一些其他服务器只是redirect到他们托pipe的域名,所以我真的不太确定我应该实现哪个选项!

非常感谢! 🙂

我不认为有特定目的的任何身份代码存在。 我同意4xx代码是寻找这种状态代码的最明显的位置。

客户不应该产生这样的请求,这就是为什么我4xx类状态代码看起来是合适的。 大多数符合您描述的标准的请求都是由机器人生成的,通常打算通过引用标头将垃圾邮件URL发送到日志文件。

404状态码和redirect都是明智的select。

支持redirect的一个理由是,如果合法用户最终生成其中一个请求,您仍然希望他们访问您的网站。 同样,对于合法的抓取工具,您通常希望他们find您的网站。

一个支持404的观点是,它可能会减less从滥用者那里得到的stream量,并且会使得滥用者难以find你真正的领域。

在官方的状态码列表中,我能find的最接近的匹配是HTTP / 2.0中引入的421状态码。

状态码421适用于多个请求重复使用连接的情况,但以后的请求不能由同一台服务器提供服务,并且客户端必须重新尝试新的连接。

例如,如果多个域parsing为相同的IP地址,则这可能是相关的,但服务器基础设施根据主机名来代理到不同服务器的传入连接。 这与您的场景不完全相同,因此我不build议您为您的场景使用421。