一文講清楚 localhost 和 127-0-0-1 的區別
在進行網絡和 Web 開發時,經常會用到 “localhost” 和 “127.0.0.1” ,localhost 和 127.0.0.1 在大多數情況下可以互換使用,但它們在概念上是不同的:
-
localhost 是本機域名。
-
127.0.0.1 是本機 IP 地址。
localhost 通過系統的 host 文件會自動解析到 127.0.0.1。
localhost 和 127.0.0.1 都是用來訪問本地計算機的名稱和地址,它們之間有緊密的關係,但也有一些區別。
1、localhost
localhost 是一個域名,它在大多數操作系統中被配置爲指向本地計算機,我們在瀏覽器中輸入 localhost 時,瀏覽器會將其解析爲本地計算機的地址。
通常情況下,在操作系統的主機文件(如 /etc/hosts 或 C:\Windows\System32\drivers\etc\hosts)中,localhost 被定義爲指向 127.0.0.1。
使用 localhost 進行網絡通信時,操作系統會將其解析爲 127.0.0.1。
其實 localhost 就相當於一個域名,我們可以使用 ping 來查看域名對應的 IP 地址,例如 ping www.runoob.com 就會返回 www.runoob.com 域名指向的 IP:
所以我們就可以在命令行使用 ping localhost 命令來查看 localhost 指向的 IP 地址:
2、127.0.0.1
127.0.0.1 是一個特殊的 IP 地址,稱爲迴環地址(loopback address),它用於標識本地計算機,並且是網絡協議中保留的地址之一,用於測試和本地通信。
127.0.0.1 是一個特殊的 IPv4 地址,保留用於主機自身的通信,不會經過任何物理網絡接口。
相同點
-
兩者都指向本地主機,通常用來進行本地測試和開發工作。
-
通信不會離開主機本身,不會經過外部網絡。
不同點
-
解析過程:localhost 需要通過主機文件解析,而 127.0.0.1 是直接使用的 IP 地址。
-
配置依賴:localhost 的解析依賴於系統配置(如 /etc/hosts),如果該配置被修改或破壞,localhost 可能無法正常解析爲 127.0.0.1,但 127.0.0.1 則不受影響。
在大多數情況下,localhost 和 127.0.0.1 可以互換使用,因爲它們都指向同一臺計算機。不過,如果遇到 DNS 或主機文件解析的問題,直接使用 127.0.0.1 可能會更加可靠。
IPv6 中的 localhost
在 IPv6 中,localhost 對應的地址是 ::1,這個地址是 IPv6 的迴環地址,用於本地設備自我通信,就像 IPv4 中的 127.0.0.1 一樣。
IPv6 中的 localhost 可以像 IPv4 一樣在網絡通信和開發中使用。
當你需要在 IPv6 環境中進行本地測試和開發時,可以使用 ::1 來指代本地主機。
如果你在本地機器上運行一個支持 IPv6 的 Web 服務器,可以通過在瀏覽器中輸入 http://[::1]:port 來訪問,其中 “port” 是你的 Web 服務器運行的特定端口。
結合之前關於 IPv4 中 localhost 和 127.0.0.1 的討論,我們可以總結 IPv6 中的相應情況:
- 表示形式:
-
IPv4: localhost 是一個主機名,通常解析爲 127.0.0.1。
-
IPv6: localhost 同樣是一個主機名,通常解析爲 ::1。
- 使用方式:
-
IPv4: localhost 通常用於軟件配置和開發環境,而 127.0.0.1 用於需要 IP 地址的網絡配置和系統文件中。
-
IPv6: localhost 和 ::1 的使用方式與 IPv4 類似,具體取決於系統和應用程序的需求。
- 訪問方法:
-
IPv4: 通過 localhost 或 127.0.0.1 訪問服務,本質上達到相同的結果。
-
IPv6: 通過 localhost 或 ::1 訪問服務,同樣達到相同的結果,主要區別在於使用的協議版本。
無論是 IPv4 中的 localhost 和 127.0.0.1,還是 IPv6 中的 localhost 和 ::1,它們都用於實現本地設備的自我通信。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/tpxjfFY3rMKP0QQk3WZ5gQ