无效/错过主机名的Http响应代码

use*_*433 6 dns http

假设我有ip 1.2.3.4,我把它映射到以下名称

folk.dude.cool
homie.dude.cool
bro.dude.cool
pal.dude.cool
buddy.dude.cool
Run Code Online (Sandbox Code Playgroud)

我检查Host我的http服务器中的标头值,将请求转发给相关模块.

现在400?,502?当带有Host标头的值丢失或无效时,我应该向客户端响应什么http响应代码?我注意到我想显示一个错误页面而不是转发到默认名称.

谢谢.

小智 5

朱利安是对的:

RFC 2616 - 14.23 主机

...客户端必须在所有 HTTP/1.1 请求消息中包含一个 Host 头字段。如果请求的 URI 不包括所请求服务的 Internet 主机名,则主机头字段必须为空值。HTTP/1.1 代理必须确保它转发的任何请求消息确实包含一个适当的 Host 标头字段,用于标识代理请求的服务。所有基于 Internet 的 HTTP/1.1 服务器必须以 400(错误请求)状态代码响应任何缺少主机头字段的 HTTP/1.1 请求消息。

当您有协议问题时,RFC 读起来有点枯燥,但信息量很大。


Jul*_*hke 4

这是一条格式错误的消息,因此为 400。