自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

localhost 和 127.0.0.1 有什么區(qū)別?

開發(fā) 網(wǎng)絡(luò)
localhost 是一個域名,如前所述。那么127.0.0.1呢?它是一個IP地址,即當(dāng)前機器的本地IP地址,只能在該機器上使用。

當(dāng)前端開發(fā)人員在本地調(diào)試時,他們經(jīng)常與 localhost 互動,只需運行npm run命令就可以在瀏覽器中打開他們的網(wǎng)頁,地址欄顯示類似于 http://localhost:xxx/index.html的內(nèi)容。

許多人在使用它時可能沒有思考兩者之間的區(qū)別。

考慮到我過去與開發(fā)人員合作時他們也缺乏對這兩者區(qū)別的清晰理解,我覺得有必要在這個話題上傳播一些知識。

什么是localhost?

localhost 是一個域名,從根本上說,與用于互聯(lián)網(wǎng)訪問的域名沒有什么不同,只是它更容易記憶。

localhost 的范圍僅限于本地機器——它的名字說明了一切:“l(fā)ocal”指的是本地的東西。

John Smith 和 Jane Doe 都可以在各自的機器上使用 localhost,而不會相互干擾,訪問他們各自的頁面內(nèi)容。

從域名到程序

要真正理解 localhost,我們需要討論用戶是如何通過域名訪問程序的,以谷歌為例。

在瀏覽器中輸入google.com時,它首先查詢DNS以獲取google.com的IP地址。

為什么需要IP地址?打個比方,如果有人向你的公司發(fā)送包裹,快遞單上會包括公司的地址、名稱和收件人等詳細(xì)信息??爝f過程依賴于地址來進行路由,最終到達(dá)收件人。同樣,在網(wǎng)絡(luò)中,域名就像公司名稱,IP地址就像物理地址。在網(wǎng)絡(luò)世界中,IP地址對于定位相應(yīng)的程序至關(guān)重要。

DNS就像一個公司目錄,列出每個域名對應(yīng)的IP地址。有些域名可能沒有注冊,使得它們的IP地址無法找到,而其他域名可能有多個IP地址,DNS會根據(jù)特定規(guī)則自動返回其中一個。購買域名后,域名服務(wù)提供商通常會提供DNS解析服務(wù),將域名及其對應(yīng)的IP地址注冊在DNS中。

IP地址從哪里來?每臺聯(lián)網(wǎng)的計算機都有一個IP地址,但個人計算機的IP通常不適合公開訪問,類似于對內(nèi)部人員清晰但對外部人士不明的內(nèi)部公司位置。對于谷歌這樣的外部服務(wù),需要一個公共IP地址,通常由互聯(lián)網(wǎng)服務(wù)提供商提供。例如,如果你的公司使用中國聯(lián)通進行網(wǎng)絡(luò)接入,你可以讓他們?yōu)槟愕墓揪W(wǎng)關(guān)服務(wù)器分配一個公共IP地址。網(wǎng)關(guān)服務(wù)器就像一個交換機,處理所有內(nèi)部網(wǎng)絡(luò)通信,并設(shè)置轉(zhuǎn)發(fā)規(guī)則來將傳入請求路由到適當(dāng)?shù)姆?wù)器。

2.有了IP地址,瀏覽器就會向這個地址發(fā)送請求,操作系統(tǒng)會將請求打包成IP數(shù)據(jù)包,然后通過網(wǎng)絡(luò)傳輸。網(wǎng)絡(luò)的路由協(xié)議根據(jù)提供的IP地址和通過各種路由器,最終到達(dá)綁定該IP的計算機。

3.一臺計算機上可能部署了多個網(wǎng)絡(luò)應(yīng)用程序。哪一個應(yīng)該接收請求?這時候端口就起作用了。每個網(wǎng)絡(luò)應(yīng)用程序都可以綁定一個或多個端口,系統(tǒng)會防止端口重疊。在請求中指定一個端口可以將請求路由到正確的網(wǎng)絡(luò)應(yīng)用程序。

但當(dāng)我們訪問谷歌時,我們并不指定端口。這是因為當(dāng)未指定端口時,默認(rèn)使用HTTP的80端口和HTTPS的443端口。啟動網(wǎng)絡(luò)程序時綁定端口是必須的,盡管有些框架會自動選擇計算機上未使用的端口。

“l(fā)ocalhost”和“127.0.0.1”有什么區(qū)別?

在了解了基礎(chǔ)知識后,我們可以更容易地理解這個問題。

localhost 是一個域名,如前所述。

那么127.0.0.1呢?它是一個IP地址,即當(dāng)前機器的本地IP地址,只能在該機器上使用。你的計算機可以在沒有連接到互聯(lián)網(wǎng)的情況下使用這個IP地址,這對于開發(fā)和測試網(wǎng)絡(luò)程序非常方便。我們調(diào)試的程序綁定到這個IP地址上。

值得注意的是,我們常見的IP地址格式為X.X.X.X,由點分隔為四段。實際上,它是一個32位的二進制數(shù),分為四個8位的段,然后轉(zhuǎn)換為十進制數(shù)顯示。

那么localhost是如何解析到127.0.0.1的呢?它需要通過DNS嗎?不需要。每臺計算機都可以在沒有DNS解析的情況下使用localhost和127.0.0.1。

這個解析是由每臺計算機獨立處理的。每臺計算機上都有一個hosts文件,里面包含一些硬編碼的DNS解析規(guī)則,包括將localhost解析到127.0.0.1的規(guī)則,這是一個約定。

如果你不想使用localhost,也沒問題。你可以將其命名為任何名稱,如wodehost,并將其解析到127.0.0.1。

你甚至可以使用google.com,但這只會對你自己有效,不會影響到其他任何人。

域名層級

localhost與我們通常使用的域名,如 www.juejin.cn、google.com或csdn.net不太一樣。www、cn、com和net代表什么?為什么localhost不需要它們?

域名是分層的,分為頂級域名(TLD)、二級域名(SLD)和三級域名(3LD)等。

  • 頂級域名(TLD):域名系統(tǒng)中的最高級別,位于域名最右邊,通常由幾個字母組成。TLD分為通用TLD和國家代碼TLD,常見的通用TLD包括.com用于商業(yè)企業(yè)、.net用于網(wǎng)絡(luò)提供商、.org用于非營利組織,而國家代碼TLD代表特定國家或地區(qū),如.cn代表中國和.uk代表英國。
  • 二級域名(SLD):位于TLD之下,由注冊者選擇并注冊,可以是一個個性化和易記的名稱。例如,juejin.cn是一個二級域名,這通常是我們可以申請的。頂級域名如.com、.net或.cn的意義通常被忽略,以便簡短和易記。
  • 三級域名(3LD):位于二級域名之下,通常用于指向特定服務(wù)器或子網(wǎng)。在blog.example.com中,“blog”是一個三級域名。“www”是最常見的三級域名,代表網(wǎng)站的主頁或主站,盡管這只是一個約定,現(xiàn)在許多網(wǎng)站建議通過二級域名直接訪問。

根據(jù)這個定義,我們可以將localhost視為一個頂級域名,盡管是一個保留的,僅用于訪問當(dāng)前計算機的頂級域名。

多個網(wǎng)站共享一個IP和端口

如前所述,不同的網(wǎng)絡(luò)程序不能使用相同的端口,但有方法可以繞過這個限制。

在個人博客流行的時候,許多人喜歡購買虛擬主機并部署一個開源博客平臺來表達(dá)自己。為了賺錢,虛擬主機提供商會在一臺計算機上分配許多虛擬主機,讓每個人都可以使用默認(rèn)的80端口訪問他們的域名而不會有任何問題。這是怎么做到的呢?

如果你有使用Nginx、Apache或IIS等網(wǎng)絡(luò)服務(wù)器的經(jīng)驗,你可能對主機頭的概念有所了解。主機頭實際上就是域名。通過設(shè)置主機頭,我們的程序可以共享一個網(wǎng)絡(luò)端口。

在Nginx等網(wǎng)絡(luò)服務(wù)器中部署網(wǎng)站時,我們配置它以在主機頭中包含域名。

啟動時,Nginx和其他網(wǎng)絡(luò)服務(wù)器會將80端口占為己用。

當(dāng)網(wǎng)站請求到達(dá)Nginx的80端口時,它會根據(jù)請求中的域名識別出配置了相應(yīng)主機頭的網(wǎng)絡(luò)程序。

然后,Nginx會將請求轉(zhuǎn)發(fā)給該網(wǎng)絡(luò)程序,如果需要,啟動它。

私有IP地址

除了127.0.0.1,還有很多私有IP地址,例如常見的192.168.x.x。這些私有IP地址大多保留用于局域網(wǎng)(LAN)內(nèi)使用,因為為每臺計算機分配唯一的IP地址是不現(xiàn)實的。只要在局域網(wǎng)內(nèi)部沒有沖突,這些地址可以自由使用。你的公司可以使用192.168.1.1,我的公司也可以使用192.168.1.1,但如果你想訪問我的公司,你需要通過公共IP地址。

常用的IPv4私有IP地址范圍分為三個類別:

  • A類:從10.0.0.0到10.255.255.255
  • B類:從172.16.0.0到172.31.255.255
  • C類:從192.168.0.0到192.168.255.255

這些私有IP地址僅供內(nèi)部網(wǎng)絡(luò)使用,不能用于公共互聯(lián)網(wǎng)。

除了上述三種私有IPv4地址范圍,還有一些保留的IPv4地址范圍:

127.0.0.0到127.255.255.255地址范圍用于回環(huán)測試,包括問題中提到的127.0.0.1地址。你還可以分配給自己一個類似127.0.0.2的IP地址,它的功能與127.0.0.1相同。169.254.0.0到169.254.255.255地址范圍用于局域網(wǎng)內(nèi)部。這種情況較少見,如果你的計算機無法連接到局域網(wǎng),可能會看到這個IP地址,它是臨時分配的局域網(wǎng)地址。 這些地址范圍也不能用于公共互聯(lián)網(wǎng)。

還有一些不太常見的專用IPv4地址范圍。IP地址范圍的完整定義可以在這里找到:www.iana.org/assignments……

IPv6

你可能也聽說過IPv6,它是為了應(yīng)對IPv4地址空間不足的問題,引入的IPv6地址數(shù)量非常多,理論上可以為地球上的每一粒沙子分配一個IP地址。盡管多年來一直在談?wù)摚獻Pv4仍然更為廣泛使用。這背后的原因很多,這里不做討論。

IPv6地址的格式如下:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX。它有128位長,由冒號分為8段,每個X代表一個十六進制數(shù)(從0到F)。IPv6 地址空間比IPv4大得多。例如,2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b是一個有效的IPv6地址。

責(zé)任編輯:趙寧寧 來源: 大遷世界
相關(guān)推薦

2024-03-05 18:59:59

前端開發(fā)localhost

2024-05-27 00:00:00

localhostIPv6IPv4

2024-03-05 18:19:07

localhostLinux數(shù)據(jù)庫

2024-04-12 00:00:00

localhost計算機機制

2018-06-08 11:28:44

MySQLlocalhost127.0.0.1

2021-12-17 14:40:02

while(1)for(;;)語言

2022-08-02 08:23:37

SessionCookies

2022-02-27 15:33:22

安全CASBSASE

2024-09-09 13:10:14

2021-05-16 14:26:08

RPAIPACIO

2020-03-09 20:56:19

LoRaLoRaWAN無線技術(shù)

2020-11-09 14:07:53

PyQtQt編程

2022-09-07 18:32:57

并發(fā)編程線程

2022-06-06 14:53:02

LoRaLoRaWAN

2022-09-08 18:38:26

LinuxWindowsmacOS

2022-08-31 08:33:54

Bash操作系統(tǒng)Linux

2023-12-15 09:21:17

ObjectJavaString

2022-08-22 07:06:32

MyBatisSQL占位符

2025-03-10 09:30:00

SpringJava開發(fā)

2024-09-12 15:28:38

localhost?網(wǎng)絡(luò)IPv4
點贊
收藏

51CTO技術(shù)棧公眾號