標籤:

IIS中主機名(Host Header)與IP

有時候我們會發現當我們訪問一個IIS網站時,使用網址可以正常訪問,但是使用IP卻不行,這是什麼原因呢?

原來IIS可以使用一個IP地址和埠綁定多個網站,這些網站的IP地址與埠都一樣,因此在客戶端或瀏覽器中使用IP訪問IIS會失敗,因為單單根據IP地址IIS無法確定你要訪問的具體是哪一個網站,此時必須使用主機名也就是網址(例如:www.blog.sina.com.cn)才能訪問到相應的網站。其工作原理如下文所述。

客戶端或瀏覽器使用網址發起請求後,會首先到DNS中查找網址對應的IP地址,然後構建HTTP請求,並把網址賦值給HTTP Header的Host屬性,最後把HTTP請求發送給目標IP。

IIS收到HTTP請求後,首先根據IP地址,找打所有綁定到該IP和埠的站點,然後根據HTTP Header的Host屬性從這些網站中查找對應的Host Header設置,找到後,把HTTP請求交給該站點處理。如果沒找到相應的網站,則尋找這些站點中沒有設置Host Header的站點,把HTTP請求交給它處理。最後IIS把處理完的信息再發送給客戶端。

推薦閱讀:

windows主機好還是linux主機好呢?
網站的空間伺服器選擇需要注意的四大方面
如何區分虛擬主機,VPS,雲主機?
國外主機相對國內主機有哪些優勢?

TAG:主機 |