日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
從頁面輸入網(wǎng)址,回車到顯示內(nèi)容,這中間到底經(jīng)歷了什么

寫在前面

阿粉在學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)的內(nèi)容時(shí),腦子里面突然冒出來一個(gè)問題:當(dāng)我們在一個(gè)瀏覽器界面輸入網(wǎng)址,回車到界面顯示內(nèi)容,這中間經(jīng)歷了什么?

先不要往下看,你能想到什么?

下面是我能想到的過程,有可能不是很準(zhǔn)確,如有錯(cuò)誤之處,還望指出。

計(jì)算機(jī)網(wǎng)絡(luò)大體上可以分為應(yīng)用層,傳輸層,網(wǎng)絡(luò)層,鏈路層和物理層。

當(dāng)我們在頁面輸入網(wǎng)址,然后回車到顯示內(nèi)容時(shí),我通過上面的層次依次來說。

詳細(xì)過程

應(yīng)用層

假設(shè)我們現(xiàn)在要訪問 google 網(wǎng)站,那么第一步要做的就是打開瀏覽器,在地址欄中輸入 google 的地址,當(dāng)你點(diǎn)擊回車時(shí),瀏覽器知道你要訪問 google 了,但是對于瀏覽器來說,這只是一個(gè)名字,但是具體在哪兒它是不知道的。比如,你知道某位明星的名字,但是他/她具體的地址在哪兒你不清楚,對吧?對于瀏覽器來說也是這樣。

比較好的一點(diǎn)是,想要訪問網(wǎng)站,不像你想見明星那么難。此時(shí)瀏覽器通過 DNS 找到你要訪問的具體網(wǎng)站地址。

當(dāng)然了,如果你想要更準(zhǔn)確的找到地址,也可以通過 HTTPDNS 去查找。通過 DNS 或者 HTTPDNS 現(xiàn)在瀏覽器拿到了具體的 IP 地址,隨后它就開始打包你的請求。對于舉的例子來說,你只是想要訪問一下,一般使用 HTTP 協(xié)議就可以了;如果有些請求會涉及到你的賬號密碼,就會使用 HTTPS 協(xié)議來保證你的數(shù)據(jù)安全。

傳輸層

到這里, DNS , HTTP , HTTPS 所在的層稱之為應(yīng)用層。

現(xiàn)在應(yīng)用層的事情做完了,接下來應(yīng)用層會將以上相關(guān)數(shù)據(jù)進(jìn)行封裝,經(jīng)過 Socket 編程,將應(yīng)用層的包發(fā)送給傳輸層。

如果這個(gè)包是使用 HTTP 或者 HTTPS 協(xié)議發(fā)送過來的,那傳輸層就會使用 TCP 協(xié)議來將數(shù)據(jù)進(jìn)行封裝;如果是使用 DNS 協(xié)議發(fā)送過來的,則會使用 UDP 協(xié)議來進(jìn)行封裝。

封裝完畢之后,瀏覽器就會將包交給操作系統(tǒng)的網(wǎng)絡(luò)層。

網(wǎng)絡(luò)層 + 鏈路層 + 物理層

這一部分會涉及到網(wǎng)絡(luò)層 + 鏈路層 + 物理層,我就不分那么詳細(xì)了~

網(wǎng)絡(luò)層的協(xié)議是 IP 協(xié)議,在 IP 協(xié)議中會有源 IP 地址和目標(biāo) IP 地址。源 IP 地址也就是瀏覽器所在機(jī)器的 IP 地址,說的再白點(diǎn)兒就是,假設(shè)你是使用電腦瀏覽器發(fā)出的訪問請求,這個(gè)源 IP 地址就是你的電腦 IP 地址 目標(biāo) IP 地址就是你想要訪問的網(wǎng)站地址。還記得嘛,在應(yīng)用層,我們根據(jù) DNS 或 HTTPDNS 已經(jīng)獲取到了想要訪問網(wǎng)站的具體 IP 地址。

OK ,既然此時(shí)操作系統(tǒng)已經(jīng)知道了目標(biāo) IP 地址,接下來它就會想我怎么根據(jù)這個(gè)目標(biāo) IP 地址找到這臺機(jī)器呢。首先操作系統(tǒng)會看這個(gè) IP 地址是不是在局域網(wǎng)內(nèi),如果是的話,從目標(biāo) IP 地址就能看出來。但是很明顯,想要訪問的 google 地址不在本地,在那觸不到的遠(yuǎn)方。

操作系統(tǒng)知道要訪問的地址在遠(yuǎn)方,但是遠(yuǎn)方在哪兒它也不知道。所以它就將這個(gè)數(shù)據(jù)包發(fā)給網(wǎng)關(guān)( gateway ),但是它不知道網(wǎng)關(guān)是哪兒臺機(jī)器,這可咋整。

沒事兒,反正大家都在一個(gè)地方,吼一嗓子不就得了~所以操作系統(tǒng)就大吼了一聲:咱們的網(wǎng)關(guān)是誰來著。網(wǎng)關(guān)就會回答它,我就是,我在這兒呢。

上面的那一聲吼,就是 ARP 協(xié)議,通過 ARP 協(xié)議,就知道了網(wǎng)關(guān)的具體地址,也就是 MAC 地址。

接下來這個(gè)數(shù)據(jù)包就到了網(wǎng)關(guān)那里。網(wǎng)關(guān)一般就是路由器,到某個(gè) IP 地址怎么走,在一個(gè)叫做「路由表」中維護(hù)著。

出網(wǎng)關(guān)就比較復(fù)雜了,這里就不詳細(xì)說了,具體可以看這篇文章: 想出網(wǎng)關(guān)?你需要懂得這些

出了網(wǎng)關(guān)之后,就需要拿出源 IP 地址和目標(biāo) IP 地址。因?yàn)橹灰隽司W(wǎng)關(guān),那就是在外面肉搏,如果沒有源 IP 地址和目標(biāo) IP 地址,就不知道這個(gè)請求是從哪兒發(fā)出的,要往哪兒去。

現(xiàn)在這個(gè)數(shù)據(jù)包經(jīng)過了重重關(guān)卡,終于找到了目標(biāo) IP 地址所在的服務(wù)器。此時(shí)服務(wù)器會首先發(fā)送一個(gè)接收請求,然后再將數(shù)據(jù)包一層層解析,在 TCP 頭中含有目標(biāo)端口號,通過這個(gè)端口號,就能夠找到哪兒個(gè)程序的進(jìn)程正在監(jiān)聽這個(gè)端口號,進(jìn)而我們就找到了我們想要訪問的網(wǎng)頁。

但是我怎么知道從我這里發(fā)出的數(shù)據(jù)包有沒有丟失呢?所以此時(shí) TCP 層會隔一段時(shí)間發(fā)送一次,這并不是說,頁面又發(fā)送了一次請求,只是 TCP 自己在悶頭重試,直到收到了接收請求。

在我們找到了想要訪問的網(wǎng)頁之后,接下來就會像來的時(shí)候,再原路返回去。

最后:

沒想到吧,一個(gè)簡單的打開界面,竟然涉及到了這么多的知識~

當(dāng)然你會發(fā)現(xiàn)在你輸入網(wǎng)址之后敲回車,頁面幾乎是立刻出來了,這就涉及到了緩存,再深入講的話,這篇文章就很長了,如果這篇文章引起了你的興趣,可以繼續(xù)向下探究,更歡迎留言討論


標(biāo)題名稱:從頁面輸入網(wǎng)址,回車到顯示內(nèi)容,這中間到底經(jīng)歷了什么
文章鏈接:http://www.5511xx.com/article/cciejep.html