【问题标题】:HTTP: Is an IP address allowed in the host header field?HTTP:主机头字段中是否允许 IP 地址?
【发布时间】:2018-10-23 14:43:22
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: http http-headers ip virtualhost


    【解决方案1】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 2019-01-23
      • 2013-03-10
      • 1970-01-01
      • 2014-12-19
      • 2014-12-02
      相关资源
      最近更新 更多