一、WWW服务器虚拟主机原理
WWW服务器虚拟主机是指应用一台物理机器,充当多个主机名的WWW服务器。比如由一台机器同时供给http://www.company1.com, http://www.company2.com 等的WWW服务,而浏览这些WWW站点的用户感到不到这种方法下跟由不同的机器供给不同的服务有什么差别。
应用WWW虚拟主机的利益在于,一些小范围的网站,通过跟其他网站共享同一台物理机器,可以减少系统的运行本钱,并且可以减少治理的难度。另外,对于个人用户,也可以应用这种虚拟主机方法来建立有自己独立域名的WWW服务器,目前国内有很多公司都供给这种免费的服务。
WWW虚拟主机有两种工作方法:
1.1 基于IP地址的虚拟主机方法
这种方法下,不同的主机名解析到不同的IP地址,供给虚拟主机服务的机器上同时设置有这些IP地址。服务器根据用户恳求的目标IP地址来判定用户恳求的是哪个虚拟主机的服务,从而进一步的处理。
毛病:基于IP地址的虚拟主机方法需要在供给虚拟主机服务的机器上设立多个IP地址,既浪费了IP地址,又限制了一台机器所能容纳的虚拟主机数目。因此这种方法越来越少应用。但是,这种方法是早期应用的HTTP 1.0协议唯一支撑的虚拟主机方法。
1.2 基于主机名的虚拟主机方法
由于基于IP地址的虚拟主机方法有如上的毛病,HTTP 1.1协议中增加了对基于主机名的虚拟主机的支撑。具体说,当客户程序向WWW服务器发出恳求时,客户想要拜访的主机名也通过恳求头中的“Host:”语句传递给WWW服务器。比如,www.company1.com, www.company2.com 都对应于同一个IP地址(即由同一台机器来给这两个虚拟域名供给服务),客户程序要存取http://www.company1.com/index.html时,发出的恳求头中包含有如下的内容:
GET /index.html HTTP/1.1
Host: www.company1.com
…..
WWW服务器程序接收到这个恳求后,可以通过检查“Host:”语句,来判定客户程序恳求是哪个虚拟主机的服务,然后再进一步的处理。
长处:供给虚拟主机服务的机器上只要设置一个IP地址,理论上就可以给无数多个虚拟域名供给服务,占用资源少,治理方便。目前基础上都是应用这种方法来供给虚拟主机服务。
毛病:在早期的HTTP 1.0版本下不能应用。实际上现在应用的浏览器基础上都支撑基于主机名的虚拟主机方法。