'Host' Header 在 Web 请求中的用法

Usage of 'Host' Header in Web Requests

我正在查看 BurpSuite 中的 http-requests。我看到一个名为 'Host' 的字段。这个领域的重要性是什么? 如果我更改此字段然后发送请求会怎样?如果我将主机 header 字段更改为其他 IP,那么服务器会响应这个新修改的 IP 吗?

引用自https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Host

主机请求header指定了请求发送到的服务器的主机和端口号。

如果未包含任何端口,则隐含所请求服务的默认端口(例如,443 用于 HTTPS URL,80 用于 HTTP URL)。

主机 header 字段必须在所有 HTTP/1.1 请求消息中发送。可以将 400(错误请求)状态代码发送到缺少主机 header 字段或包含多个主机

的任何 HTTP/1.1 请求消息。

单个 Web 服务器可以托管具有不同域和子域的多个网站。

主机 header 允许区分它们。

鉴于 IPv4 地址的可用性有限,这很重要,因为网站数量多于可用 IP 地址。

What happens if I change this field and then send the request?

如果服务器注意到它并识别主机名,它将响应该网站(否则它可能会回退到其默认网站或抛出错误)。

有关示例,请参阅 Apache HTTPD 手册中的 Name-based Virtual Host Support

If I change the host header field to some other IP then would the server respond back to this new modified IP?

没有。 Host header 是客户端要求的主机。它与应该将响应发送到哪里无关。