Answers:
它是HTTP 1.1协议的一部分。
具体来说,HTTP 1.1协议包括一个名为“ host:”的标头,它指定客户端尝试访问特定服务器上的哪个网站。
因此,如果snoopy.net和woodstock.org都共享192.0.32.10,并且您的浏览器试图从http://snoopy.net/doghouse
特定的HTTP请求中获取内容,则该代码应类似于:
GET /doghouse HTTP/1.1
Host: snoopy.net
如果所需的网址是http://woodstock.org/seeds
请求,则该请求看起来像
GET /seeds HTTP/1.1
Host: woodstock.org
在这两种情况下,您的计算机和服务器的端口80之间都会有一个tcp套接字。服务器将根据主机标头从/var/www/snoopy.net或/var/www/woodstock.org/获取内容。
Cookie和其他内容(如浏览器类型和允许的内容)将有其他标头,但是“主机”标头专门是允许Web服务器知道需要哪个虚拟网站的标头。
RFC2616还有更多内容。
这也是为什么https站点必须具有自己的IP地址的原因-ssl密钥交换和证书验证是在进行http交易之前进行的,因此http服务器将不知道发出“ woodstock”证书。 org”或“ snoopy.net”,当它在192.0.32.10的端口443上收到https连接时。
编辑
注释中的**指出了TLS规范中SSL的扩展,该扩展使服务器可以知道用户尝试访问哪个网站,并且大多数现代Web浏览器都具有这些扩展,因此也必须有点强大。
所有现代浏览器都随请求一起发送的东西称为“主机:”标头。
firefox为此页面发送的实际请求是:
主持人:superuser.com 用户代理:Mozilla / 5.0(Windows; U; Windows NT 6.0; zh-CN; rv:1.9.1.7)Gecko / 20091221 Firefox / 3.5.7(.NET CLR 3.5.30729) 接受:text / html,application / xhtml + xml,application / xml; q = 0.9,* / *; q = 0.8 接受语言:en-us,en; q = 0.5 接受编码:gzip,deflate 接受字符集:ISO-8859-1,utf-8; q = 0.7,*; q = 0.7 保持生命:300 连接:保持活动状态
如您所见,
主持人:superuser.com位标识有问题的网站。
至于您的特定问题,您将必须阅读有关特定托管公司希望您如何请求配置的信息。