简介:IIS可以在一个服务器上搭建多个网站。你需要使用到host header名,ip地址,和端口号。这篇文章解释了什么是host header以及它是如何工作的。
Host header是HTTP消息的一部分:
客户端与web服务器之间的通信使用的是HTTP协议。客户端与服务器之间发送的数据称为HTTP消息。HTTP消息有body部分和header部分。Body部分可以包含服务器响应客户端GET请求的网页HTML代码。Header部分包含Content-Length, Referer, Host等等的信息。
客户端是如何与web服务器进行通信的:
这个通信过程是由用户在网页浏览器的地址栏中键入域名及端口号所引发的。比如说一个用户键入www.ilopia.com,他的浏览器会自动地使用HTTP协议以及80端口http://www.ilopia.com
客户端需要与ip地址和端口号建立连接,所以浏览器需要解析域名。域名解析为ip地址可以通过使用DNS服务器和hosts文件。
一旦域名被解析后,客户端就与web服务器建立了连接,然后发送一个请求消息。这个请求消息包含host header,比如象下面这样:
GET /index.htm HTTP/1.1
Host: www.ilopia.com
服务器接收到HTTP消息后对它进行检查。如果发现HTTP消息中包含host header(HTTP消息中也可以不包含host header), IIS会查找它的配置中是否有匹配的host header名。如果发现了匹配,网站中home folder里的index.htm就会被返回。最后的这一步就是IIS响应请求。
域名解析不是IIS的一部分:
从上面一节可以看出,HTTP消息(host header)一直到客户端与服务器间建立连接后才被检查。所以当配置服务器使用host header时,必须也配置DNS服务,对于一个小的网络,hosts file也可以满足需求。
后台:
每个IIS搭建的网站都bind到一个ip地址,端口号和host header名。每个网站的配置都存储在metabase属性ServerBindings,它的字符串结构是IP:Port:Hostname。举一个例子192.168.0.1:80:www.gafvert.info。要决定哪个网站处理请求,IIS检查是否有一个网站配置监听这个ip地址和端口号,并且也匹配HTTP消息中的host header。如果发现了一个网站的ServerBindings属性匹配,请求就会被转发到这个网站。如果没有网站匹配,IIS检查是否有一个网站配置为监听所有的ip地址(在IIS
Manager中叫做”All Unassigned”),和端口,并且配置了一个host header匹配HTTP消息中的host header。如果找到了这样一个网站,IIS把请求转发到这个网站。如果还是没有找到匹配,最后一步是检查IIS是否有一个网站有空白的host header配置,如果有的话,转发请求到该网站。
最后举一个实例,有一个网站使用了一个host header(Host Name)为crmexport的site binding,当用浏览器访问这个网站是,用fidller截取HTTP请求的消息中包含Host为crmexport,见下图:
原文参见http://www.it-notebook.org/iis/article/understanding_host_headers.htm Kristofer Gafvert
分享到:
相关推荐
IIS 7 Header Remover
主要是记录了如何在iis配置修改host主机泄露漏洞,其中含iis重写小插件。
IIS 6.0入门及进阶系列课程之九:理解IIS 6.0中的身份验证
VirtualHost说明文档 一、运行环境 操作系统Window XP/Window Server 2000/Window Server 2003/Window Server 2008 IIS 版本:IIS 5.0 / IIS 6.0 二、功能说明 本程序的功能是,在一台服务器、一个IP地址的...
iis支持中文路径 iis支持路径中的中文
(IIS备份)如何在IIS7或IIS7.5中导入导出站点及应用程序池.
微软Windows Server 2003中的IIS下载 6.0为用户提供了集成的、可靠的、可扩展的、安全的及可管理的内联网、外联网和互联网Web服务器解决方案。IIS下载 6.0经过改善的结构可以完全满足全球客户的需求。这篇文章介绍了...
iis修复工具,修复IIS错误 此工具用于修复IIS出现Active Server Pages错误'ASP 0201'。下载后查一下毒,然后直接运行即可。 同时也可以解决如下问题: 本机架设iis 访问asp文件 打不开 提示 "HTTP 500 - 内部服务器...
IIS 6.0 中的一个最重要的变动涉及 Web 服务器安全性。为了更好地预防恶意用户和攻击者的攻击,在默认情况下,没有将 IIS 安装在 Microsoft Windows Server 2003 家族的成员上。 要点 为了更好地预防恶意用户和...
iis教程2,iis中文安装手册,exe版本。
iis中虚拟目录的作用:很多时候,上传的文件多了,架设服务器当初设定的主目录所在盘空间往往就不够了,怎么办?这就需要设置虚拟目录。
用iis建立一个.net的网站,在iis中绑定了服务器公网ip的80端口和127.0.0.1的80端口,结果用ip地址不能直接访问
如何在IIS中成功配置HTTPS服务,如何在iis中配置https Web 站点.需要用到用到服务器证书.
iis 没系统盘时,用该文件安装IIS。
在C:\IIS51下双击noiis.bat,打开一个文件找到iis=iis2.dll,OcEntry,iis2.inf,hide,7,删除hide后变成iis=iis2.dll,OcEntry,iis2.inf,,7,保存退出后,打开控制面板,在添加组件下就会出现IIS安装选项。
虚拟IIS虚拟IIS虚拟IIS虚拟IIS虚拟IIS虚拟IIS虚拟IIS虚拟IIS虚拟IIS
remoting寄宿到IIS中,有些特别的优势,如: 1:可以借助于IIS的安全机制; 2:在硬件环境不允许的情况下,和IIS共用端口。 本程序,服务器采用IIS,客户端为一个console,演示了remoting如果宿主到IIS中。详细请看...
windows 2003中IIS的重要组件之一,希望对你有所帮助!
IIS5.1服务IIS5.1服务IIS5.1服务IIS5.1服务IIS5.1服务IIS5.1服务IIS5.1服务IIS5.1服务IIS5.1服务IIS5.1服务IIS5.1服务IIS5.1服务
超小性 代替IIS 迷你IIS迷你IIS迷你IIS