2011-08-04 71 views
13

本地主機和真實IP地址有什麼區別?本地主機vs真實IP地址

如果我通過使用http://localhost:8080/index.htmlhttp://192.123.456.001:8080/index.html(例如,192.123.456.001是主機的真實IP地址)訪問應用程序,有什麼區別?

+15

* 192.123.456.001 *不是一個真正的IP地址:-) –

回答

19

當您訪問localhost時,您的/etc/hosts文件會告訴您的計算機不要再查看並將您重定向到您自己的計算機。當您訪問本地IP地址時,您的計算機將要求路由器獲取數據,然後您的路由器將指向您的計算機。

1

維基百科,相關點:

與作爲 與網絡上的另一計算機以相同的方式環回接口通信,但繞過本地網絡 接口硬件,爲的目的是有用的測試軟件。

可以通過環回地址以高效的方式執行連接到本地託管的網絡服務,例如計算機遊戲服務器,或者用於其它進程間通信,可以執行 。

http://en.wikipedia.org/wiki/Localhost

+0

雖然,這將是很高興知道*如何*這是「高效的方式」。程序員是否有效地不考慮服務器地址?服務器是否有效地不必查找地址?都?我認爲這就是最初的海報所要求的。 – Skotte

+1

@Skotte網絡遵循OSI 7層模型,運行環回允許操作系統通過跳過層來優化事物。在現代操作系統和TCP/IP上,區別應該與本地路由表中的查詢一樣簡單。 –

0

所不同的是,當你建立一個監聽套接字(等待連接),你必須告訴它要綁定到的地址。這同樣適用於所有常用Web服務器的網站配置。

通常情況下,您只需綁定到任何地址,這意味着您可以通過127.0.0.1或192.xxx或機器碰巧擁有的任何其他IP地址訪問它,但偶爾您可能需要綁定到特定的地址 - 例如如果您在一臺機器上有4個公共IP,您可能希望在特定IP上擁有特定站點。

3

除了其他答案,您可以遇到使用本地主機的神祕問題。

一個示例:如果您在地址欄中輸入http://localhost,則Windows上的IE會生成一個快捷方式。當您開發Web應用程序並安裝本地代理(例如Fiddler)以查看在本地運行的客戶端網頁和服務器之間傳遞的消息時,這會成爲問題 - 消息不會被捕獲,因爲它不會通過在這種情況下的代理。這使得在您的應用程序中發現僅限IE的錯誤有點不方便... ;-)