我想知道Web服务器如何区分同一台服务器(同一个IP)上的不同DNS名称的请求?
比如在我的大学有两个网站:
fea.kau.edu.sa engineering.kau.edu.sa
当我在Windows上使用nslookup
时,我得到了两个域名相同的IP地址。 你能解释一下吗?
HTTP 1.1要求所有的客户端系统都发送一个头, Host
,它向服务器指明他们发送请求的主机名。
这允许服务器读取该标题,并响应相应站点的内容。
没有这个function,每个不同的站点都需要一个不同的IP地址; 如果我们没有这个地方的话,我们甚至会更快地耗尽IPv4空间。
打开你最喜欢的数据包追踪器(类似wireshark ),并观察连接时发生了什么。
一个非常简单的请求可能是这样的:
GET / HTTP/1.1 Host: www.example.com
(注意,如果你想用telnet自己重新创build这个空行,你可以在维基百科上看到很多这样的东西)
Host:
请求的一部分告诉Web服务器访问哪个站点。
这些标题中显示了很多东西,所以你可能想用Firebug之类的浏览器插件来了解它们
简单。
由于很长时间,每个HTTP请求….包括域。
基本上,PAYLOAD(不是tcp,http请求结构)告诉web服务器是什么domiain。
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
具有通过浏览传输的字段。 有一个“HOSTNAME”。
大多数其他协议 – 不关心。