為什么用IP無法訪問網站,域名可以訪問?


  我們訪問網站都是通過域名進行訪問的,偶爾會使用網站IP進行訪問,如學校通常使用IP登錄教務處,但很多的時候我們無法通過ip進行訪問其他網站,這就涉及到服務器的問題了。

      網站都是依托在服務器上面的,而服務器有很多種,阿里雲有ECS、虛擬主機等。不得不說的是我們在訪問網站的時候會涉及到一個DNS解析的過程,是將瀏覽器地址欄的域名轉化成IP地址的一個過程,這個過程是由DNS服務器執行的,不多說了,詳見(相關文檔:一次完整的HTTP請求過程)。

  一般的網站會選擇放在虛擬主機,且在主機上放置了很多個網站,而每個網站綁定1個或以上域名,虛擬主機上,例如Apache主機的配置會將對應的ip解析到對應的網站目錄的,實現一台服務器上配置多個站點;一般用戶在訪問的時候,會產生一個http請求報文,上面的host信息可以提供給服務器,告訴服務器要訪問的域名,從而實現一台主機綁定一個IP,即使有多個網站,也不會相互干擾。但使用IP訪問,主機不知道用戶訪問的具體目錄,請求便會出現錯誤。

這里指的是共享主機,如果是獨立的主機,網站則是可以使用IP進行訪問的。

 

 

  如果就想用ip形式訪問,可以手動設置Host頭域信息。

  java中以org.apache.http.client.methods.HttpGet實現http請求為例,解決方法HttpGet httpGet = new HttpGet(url);

  httpGet.setHeader(“Host”, ServerHostname);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM