如果我輸入網站的 IP 而不是字串形式,我的本地 DNS 伺服器是否理解這一點並且我會繞過 DNS 過程嗎?

如果我輸入網站的 IP 而不是字串形式,我的本地 DNS 伺服器是否理解這一點並且我會繞過 DNS 過程嗎?

這純粹是出於好奇。但如果我輸入網站的 IP,該請求是否仍會經過正向查找過程?如果不是,在什麼時候、透過哪一步意識到這是 IP 位置而不是字串形式的主機名稱?

另外,這將如何記錄在我的主機檔案中?如果它經歷整個查找過程,主機檔案是否會包含字串主機名稱和 IP 並在本地填充?

答案1

如果您使用IP位址,作業系統會立即知道這是一個IP位址,並且不會進行正向查找。

當你發出HTTP請求時,第一步是取得目的地的IP位址,以便瀏覽器能夠與伺服器通訊。對於與伺服器的通信,一切都透過 IP 進行,從 IP 位址到 IP 位址,因此此通訊不需要伺服器的名稱。但是,它會作為標頭傳遞到 HTTP 標頭中Host:,以便讓 Web 伺服器知道您所在的網站(如果它託管多個網站)。

如果透過IP位址訪問,則不會出現這種情況,並且會顯示預設網站。

您的hosts文件是靜態文件,它不會因您執行的任何操作而更改,除非您直接編輯它(或使用腳本或應用程式修改它)。

答案2

正如其他人所寫的,透過使用 IP 位址,您確實跳過了 DNS,它允許在沒有主機名稱的情況下存取例如開發網站。

對於開發網站來說,將 IP - 模擬主機名稱新增到 /etc/hosts 中是非常常見的。與直接使用 IP 位址不同,這將 a) 仍然跳過 DNS b) 使瀏覽器將Host請求標頭新增至 HTTP 請求中,從而允許本機伺服器上的虛擬主機。

相關內容