Given that the TCP connection is already established when the HTTP request is sent, the IP address and port are implicitly known — a TCP connection is an IP + Port.
So, why do we need the Host
header? Is this only needed for the case where there are multiple hosts mapped to the IP address implied in the TCP connection?