













IIS可以在一台服务器上配置多个web站点,每个站点通过ip地址、端口(port)和主机名(host)结合的标识符(ServerBindings Metabase)进行区分。标识字符串的格式如下:
IP:Port:Hostname
上面的IP和Hostname是可选项,假如设定站点时不指定,表示匹配所有。
浏览器和web服务器之间是通过http协议通信的。http发送的请求头部(headers)部分包含有很多信息,如Content-Length, Referer, Host等等。
互联网上的两台主机之间是通过TCP/IP协议进行通信的,通信建立连接时需要指定ip和端口号(port)。当我们在浏览器中输入一个网站的域名,并按回车后,浏览器默认会使用http协议和80端口发出请求。
浏览器首先需要把域名解析为对应的ip地址。域名解析可以使用dns服务器或本地的host文件。 当域名解析为ip地址后,浏览器会和web服务器建立连接,并发出网页访问请求信息。请求信息的头部一般像下面这样:
GET /index.htm HTTP/1.1 Host: www.ilopia.com
IIS接收到请求后,会检查请求是否带有host信息(请求中也可能不带有host信息,如使用ip直接访问)。IIS发现有host后,会查找是否有匹配该host的站点,如果有匹配的站点,就会把请求路由给它进行处理。 最后一步是IIS响应处理请求。
IIS分发请求到指定站点的规则如下:
ServerBindings Metabase Property (IIS 6.0) Understanding Host Headers in IIS Using Host Headers to host multiple websites on IIS 6.0
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。