IIS 处理请求 原理

时间:2021-10-07 14:59:14

有时候我们会发现当我们访问一个IIS网站时,使用网址可以正常访问,但是使用IP却不行,这是什么原因呢?

原来IIS可以使用一个IP地址和端口绑定多个网站,这些网站的IP地址与端口都一样,因此在客户端或浏览器中使用IP访问IIS会失败,因为单单根据IP地址IIS无法确定你要访问的具体是哪一个网站,此时必须使用主机名也就是网址,才能访问到相应的网站。其工作原理如下文所述。

客户端或浏览器使用网址发起请求后,会首先到DNS中查找网址对应的IP地址,然后构建HTTP请求,并把网址赋值给HTTP Header的Host属性,最后把HTTP请求发送给目标IP。

IIS收到HTTP请求后,首先根据IP地址,找打所有绑定到该IP和端口的站点,然后根据HTTP Header的Host属性从这些网站中查找对应的Host Header设置,找到后,把HTTP请求交给该站点处理。如果没找到相应的网站,则寻找这些站点中没有设置Host Header的站点,把HTTP请求交给它处理。最后IIS把处理完的信息再发送给客户端。

IIS 处理请求 原理