HTTP:主机头字段中是否允许IP地址?

时间:2018-05-14 00:37:15

标签: http http-headers ip virtualhost

我已阅读RFC 2616(HTTP / 1.1),我认为对于上述问题并不清楚。

据我了解,主机头字段的目的是能够在一个IP地址下提供多个域。因此主机头字段中的IP地址没有多大意义。但RFC 2616没有明确禁止这一点。

所以我的第一个问题是:如果我编写HTTP服务器,我应该实施检查,客户端是否在主机头字段中发送IP地址,或者这是不必要的,因为没有客户端会这样做?

第二个问题:如果客户端在主机头字段中发送IP地址,服务器是应该将其处理为有效还是应该返回“400 Bad Request”?

1 个答案:

答案 0 :(得分:8)

Host标头可以是原始IP文字。适当的RFC引用是:

RFC3986中host的定义是:

host = IP-literal / IPv4Address / reg-name

至于回归400 Bad Request,我当然不会。如果您输入“http://172.217.3.100/”,则浏览器(或至少是curl)会在请求中发送Host: 172.217.3.100