为什么我们在/ Http头中指定主机已经知道了?

时间:2017-12-01 15:21:18

标签: http networking tcp

我们知道我们在http中使用tcp。在tcp连接中,origin和destination都是指定的。根据这句话为什么我们在Http头中指定主机? 例如:

GET /index.html HTTP/1.1\r\n
Host: www-net.cs.umass.edu\r\n
User-Agent: Firefox/3.6.10\r\n
Accept: text/html,application/xhtml+xml\r\n
Accept-Language: en-us,en;q=0.5\r\n
Accept-Encoding: gzip,deflate\r\n
Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n
Keep-Alive: 115\r\n
Connection: keep-alive\r\n
\r\n

1 个答案:

答案 0 :(得分:1)

指定它的原因是指定主机的名称。由于请求本身是IP头中的IP地址,因此Web服务器无法确定请求了哪个域。

在HTTP 1.0下,不需要这样做。在HTTP 1.0存在多年之后,虚拟主机的普及变得非常普遍。虚拟主机,如果您不知道,允许您在单个服务器上托管多个站点,甚至是相同的IP,以不同的方式响应每个域。

由于虚拟主机变得非常普遍,因此HTTP 1.1标准使Host标头成为一项要求,简化了确定请求应路由到哪个站点所需的逻辑。