偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

localhost 和 127.0.0.1 有什么區(qū)別?你知道嗎?

網(wǎng)絡(luò) 路由交換
你可能也聽(tīng)說(shuō)過(guò)IPv6,它是為了應(yīng)對(duì)IPv4地址空間不足的問(wèn)題,引入的IPv6地址數(shù)量非常多,理論上可以為地球上的每一粒沙子分配一個(gè)IP地址。盡管多年來(lái)一直在談?wù)摚獻(xiàn)Pv4仍然更為廣泛使用。

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

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

考慮到我過(guò)去與開(kāi)發(fā)人員合作時(shí)他們也缺乏對(duì)這兩者區(qū)別的清晰理解,我覺(jué)得有必要在這個(gè)話(huà)題上傳播一些知識(shí)。

什么是localhost?

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

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

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

從域名到程序

要真正理解 localhost,我們需要討論用戶(hù)是如何通過(guò)域名訪(fǎng)問(wèn)程序的,以谷歌為例。

1.在瀏覽器中輸入google.com時(shí),它首先查詢(xún)DNS以獲取google.com的IP地址。

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

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

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

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

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

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

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

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

localhost 是一個(gè)域名,如前所述。

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

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

那么localhost是如何解析到127.0.0.1的呢?它需要通過(guò)DNS嗎?不需要。每臺(tái)計(jì)算機(jī)都可以在沒(méi)有DNS解析的情況下使用localhost和127.0.0.1。

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

如果你不想使用localhost,也沒(méi)問(wèn)題。你可以將其命名為任何名稱(chēng),如wodehost,并將其解析到127.0.0.1。

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

域名層級(jí)

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

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

頂級(jí)域名(TLD):域名系統(tǒng)中的最高級(jí)別,位于域名最右邊,通常由幾個(gè)字母組成。TLD分為通用TLD和國(guó)家代碼TLD,常見(jiàn)的通用TLD包括.com用于商業(yè)企業(yè)、.net用于網(wǎng)絡(luò)提供商、.org用于非營(yíng)利組織,而國(guó)家代碼TLD代表特定國(guó)家或地區(qū),如.cn代表中國(guó)和.uk代表英國(guó)。

二級(jí)域名(SLD):位于TLD之下,由注冊(cè)者選擇并注冊(cè),可以是一個(gè)個(gè)性化和易記的名稱(chēng)。例如,juejin.cn是一個(gè)二級(jí)域名,這通常是我們可以申請(qǐng)的。頂級(jí)域名如.com、.net或.cn的意義通常被忽略,以便簡(jiǎn)短和易記。

三級(jí)域名(3LD):位于二級(jí)域名之下,通常用于指向特定服務(wù)器或子網(wǎng)。在blog.example.com中,“blog”是一個(gè)三級(jí)域名?!皐ww”是最常見(jiàn)的三級(jí)域名,代表網(wǎng)站的主頁(yè)或主站,盡管這只是一個(gè)約定,現(xiàn)在許多網(wǎng)站建議通過(guò)二級(jí)域名直接訪(fǎng)問(wèn)。

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

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

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

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

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

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

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

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

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

私有IP地址

除了127.0.0.1,還有很多私有IP地址,例如常見(jiàn)的192.168.x.x。這些私有IP地址大多保留用于局域網(wǎng)(LAN)內(nèi)使用,因?yàn)闉槊颗_(tái)計(jì)算機(jī)分配唯一的IP地址是不現(xiàn)實(shí)的。只要在局域網(wǎng)內(nèi)部沒(méi)有沖突,這些地址可以自由使用。你的公司可以使用192.168.1.1,我的公司也可以使用192.168.1.1,但如果你想訪(fǎng)問(wèn)我的公司,你需要通過(guò)公共IP地址。

常用的IPv4私有IP地址范圍分為三個(gè)類(lèi)別:

  • A類(lèi):從10.0.0.0到10.255.255.255
  • B類(lèi):從172.16.0.0到172.31.255.255
  • C類(lèi):從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)測(cè)試,包括問(wèn)題中提到的127.0.0.1地址。你還可以分配給自己一個(gè)類(lèi)似127.0.0.2的IP地址,它的功能與127.0.0.1相同。169.254.0.0到169.254.255.255地址范圍用于局域網(wǎng)內(nèi)部。這種情況較少見(jiàn),如果你的計(jì)算機(jī)無(wú)法連接到局域網(wǎng),可能會(huì)看到這個(gè)IP地址,它是臨時(shí)分配的局域網(wǎng)地址。 這些地址范圍也不能用于公共互聯(lián)網(wǎng)。

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

IPv6

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

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

關(guān)于IPv6的進(jìn)一步討論超出了本文的范圍,但有興趣的人可以進(jìn)一步探索。

責(zé)任編輯:武曉燕 來(lái)源: 大遷世界
相關(guān)推薦

2024-05-27 00:40:00

2024-03-05 18:59:59

前端開(kāi)發(fā)localhost

2024-03-05 18:19:07

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

2022-03-13 18:53:31

interfacetypeTypeScript

2022-06-08 07:34:25

InnoDBdeleteMySQL

2021-02-06 21:57:40

Debug模式Release

2021-07-27 08:02:45

DTO 軟件Pojo

2022-08-26 01:41:42

GPUCPU架構(gòu)

2024-04-12 00:00:00

localhost計(jì)算機(jī)機(jī)制

2018-10-26 10:41:06

ApacheNginx服務(wù)器

2024-03-26 00:10:08

預(yù)測(cè)AI泛化

2024-10-22 09:59:36

虛擬化容器化系統(tǒng)

2024-01-01 08:25:53

ViewSurface框架

2023-04-26 10:21:04

2023-12-07 07:08:09

Angular函數(shù)

2023-06-01 08:15:04

CentOS紅帽

2023-12-20 08:23:53

NIO組件非阻塞

2024-04-30 09:02:48

2023-09-01 07:38:45

ArrayListArrayst實(shí)線(xiàn)類(lèi)

2025-01-09 07:31:39

MySQL字段磁盤(pán)
點(diǎn)贊
收藏

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