我已阅读RFC 2616(HTTP / 1.1),我认为对于上述问题并不清楚。
据我了解,主机头字段的目的是能够在一个IP地址下提供多个域。因此主机头字段中的IP地址没有多大意义。但RFC 2616没有明确禁止这一点。
所以我的第一个问题是:如果我编写HTTP服务器,我应该实施检查,客户端是否在主机头字段中发送IP地址,或者这是不必要的,因为没有客户端会这样做?
第二个问题:如果客户端在主机头字段中发送IP地址,服务器是应该将其处理为有效还是应该返回“400 Bad Request”?
答案 0 :(得分:8)
Host
标头可以是原始IP文字。适当的RFC引用是:
uri-host
host
RFC3986中host
的定义是:
host = IP-literal / IPv4Address / reg-name
至于回归400 Bad Request
,我当然不会。如果您输入“http://172.217.3.100/”,则浏览器(或至少是curl)会在请求中发送Host: 172.217.3.100
。