HTTP:为什么需要指定主机名?

时间:2011-11-26 10:01:24

标签: http

我开始学习套接字,我正在试图弄清楚为什么需要在请求中指定主机名。如果我已经连接到“www.google.com”,那么请求中的“主机:www.google.com \ r \ n”是什么意思?服务器是否已经知道自己的名字?

2 个答案:

答案 0 :(得分:4)

有时服务器确实知道它的主机名,但它并不总是1:1的关系。许多DNS主机名都可以指向相同的IP,因此,1个IP可以拥有许多DNS主机名。 (此外,单个DNS主机名可以映射到许多IP地址,但在此问题中这不太重要。)

HTTP请求中的Host:行允许Web服务器知道您请求的主机名,并根据该服务器提供服务。这允许一台IP地址的计算机为多个域提供服务。

例如,如果网络服务器看到Host: foo.com,它可能会投放一个网站,但Host: bar.com可能会导致返回完全不同的结果。网络服务器没有其他数据可用于此信息,它依赖于Web客户端来通知它。

答案 1 :(得分:2)

给定服务器可以有许多不同的DNS名称。例如,想想共享主机站点。