本地主機和真實IP地址有什麼區別?本地主機vs真實IP地址
如果我通過使用http://localhost:8080/index.html
和http://192.123.456.001:8080/index.html
(例如,192.123.456.001是主機的真實IP地址)訪問應用程序,有什麼區別?
本地主機和真實IP地址有什麼區別?本地主機vs真實IP地址
如果我通過使用http://localhost:8080/index.html
和http://192.123.456.001:8080/index.html
(例如,192.123.456.001是主機的真實IP地址)訪問應用程序,有什麼區別?
當您訪問localhost
時,您的/etc/hosts
文件會告訴您的計算機不要再查看並將您重定向到您自己的計算機。當您訪問本地IP地址時,您的計算機將要求路由器獲取數據,然後您的路由器將指向您的計算機。
維基百科,相關點:
與作爲 與網絡上的另一計算機以相同的方式環回接口通信,但繞過本地網絡 接口硬件,爲的目的是有用的測試軟件。
可以通過環回地址以高效的方式執行連接到本地託管的網絡服務,例如計算機遊戲服務器,或者用於其它進程間通信,可以執行 。
雖然,這將是很高興知道*如何*這是「高效的方式」。程序員是否有效地不考慮服務器地址?服務器是否有效地不必查找地址?都?我認爲這就是最初的海報所要求的。 – Skotte
@Skotte網絡遵循OSI 7層模型,運行環回允許操作系統通過跳過層來優化事物。在現代操作系統和TCP/IP上,區別應該與本地路由表中的查詢一樣簡單。 –
所不同的是,當你建立一個監聽套接字(等待連接),你必須告訴它要綁定到的地址。這同樣適用於所有常用Web服務器的網站配置。
通常情況下,您只需綁定到任何地址,這意味着您可以通過127.0.0.1或192.xxx或機器碰巧擁有的任何其他IP地址訪問它,但偶爾您可能需要綁定到特定的地址 - 例如如果您在一臺機器上有4個公共IP,您可能希望在特定IP上擁有特定站點。
除了其他答案,您可以遇到使用本地主機的神祕問題。
一個示例:如果您在地址欄中輸入http://localhost,則Windows上的IE會生成一個快捷方式。當您開發Web應用程序並安裝本地代理(例如Fiddler)以查看在本地運行的客戶端網頁和服務器之間傳遞的消息時,這會成爲問題 - 消息不會被捕獲,因爲它不會通過在這種情況下的代理。這使得在您的應用程序中發現僅限IE的錯誤有點不方便... ;-)
* 192.123.456.001 *不是一個真正的IP地址:-) –