成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從頁面輸入網址,回車到顯示內容,這中間到底經歷了什么

開發 前端
阿粉在學習計算機網絡的內容時,腦子里面突然冒出來一個問題:當我們在一個瀏覽器界面輸入網址,回車到界面顯示內容,這中間經歷了什么?

[[319026]]

寫在前面

阿粉在學習計算機網絡的內容時,腦子里面突然冒出來一個問題:當我們在一個瀏覽器界面輸入網址,回車到界面顯示內容,這中間經歷了什么?

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

下面是我能想到的過程,有可能不是很準確,如有錯誤之處,還望指出。

計算機網絡大體上可以分為應用層,傳輸層,網絡層,鏈路層和物理層。

當我們在頁面輸入網址,然后回車到顯示內容時,我通過上面的層次依次來說。

詳細過程

應用層

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

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

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

傳輸層

到這里, DNS , HTTP , HTTPS 所在的層稱之為應用層。

現在應用層的事情做完了,接下來應用層會將以上相關數據進行封裝,經過 Socket 編程,將應用層的包發送給傳輸層。

如果這個包是使用 HTTP 或者 HTTPS 協議發送過來的,那傳輸層就會使用 TCP 協議來將數據進行封裝;如果是使用 DNS 協議發送過來的,則會使用 UDP 協議來進行封裝。

封裝完畢之后,瀏覽器就會將包交給操作系統的網絡層。

網絡層 + 鏈路層 + 物理層

這一部分會涉及到網絡層 + 鏈路層 + 物理層,我就不分那么詳細了~

網絡層的協議是 IP 協議,在 IP 協議中會有源 IP 地址和目標 IP 地址。源 IP 地址也就是瀏覽器所在機器的 IP 地址,說的再白點兒就是,假設你是使用電腦瀏覽器發出的訪問請求,這個源 IP 地址就是你的電腦 IP 地址 目標 IP 地址就是你想要訪問的網站地址。還記得嘛,在應用層,我們根據 DNS 或 HTTPDNS 已經獲取到了想要訪問網站的具體 IP 地址。

OK ,既然此時操作系統已經知道了目標 IP 地址,接下來它就會想我怎么根據這個目標 IP 地址找到這臺機器呢。首先操作系統會看這個 IP 地址是不是在局域網內,如果是的話,從目標 IP 地址就能看出來。但是很明顯,想要訪問的 google 地址不在本地,在那觸不到的遠方。

操作系統知道要訪問的地址在遠方,但是遠方在哪兒它也不知道。所以它就將這個數據包發給網關( gateway ),但是它不知道網關是哪兒臺機器,這可咋整。

沒事兒,反正大家都在一個地方,吼一嗓子不就得了~所以操作系統就大吼了一聲:咱們的網關是誰來著。網關就會回答它,我就是,我在這兒呢。

上面的那一聲吼,就是 ARP 協議,通過 ARP 協議,就知道了網關的具體地址,也就是 MAC 地址。

接下來這個數據包就到了網關那里。網關一般就是路由器,到某個 IP 地址怎么走,在一個叫做「路由表」中維護著。

出網關就比較復雜了,這里就不詳細說了,具體可以看這篇文章: 想出網關?你需要懂得這些

出了網關之后,就需要拿出源 IP 地址和目標 IP 地址。因為只要出了網關,那就是在外面肉搏,如果沒有源 IP 地址和目標 IP 地址,就不知道這個請求是從哪兒發出的,要往哪兒去。

現在這個數據包經過了重重關卡,終于找到了目標 IP 地址所在的服務器。此時服務器會首先發送一個接收請求,然后再將數據包一層層解析,在 TCP 頭中含有目標端口號,通過這個端口號,就能夠找到哪兒個程序的進程正在監聽這個端口號,進而我們就找到了我們想要訪問的網頁。

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

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

最后:

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

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

 

責任編輯:武曉燕 來源: Java極客技術
相關推薦

2020-09-01 11:40:01

HTTPJavaTCP

2020-10-09 08:59:55

輸入網址解密

2010-07-06 10:11:25

瀏覽器

2018-01-03 15:17:26

2017-09-22 13:24:20

2020-01-10 08:54:24

URLDNSTCP

2023-10-30 23:14:57

瀏覽器URL網頁

2017-12-04 09:26:56

架構師碼農菜鳥

2017-04-11 13:54:49

HTTPURLHTML

2022-05-26 23:36:36

SQLMySQL數據

2023-07-24 07:57:23

C++標準功能

2023-11-28 08:24:21

SQLredis

2017-11-14 16:38:05

智慧新城

2017-03-29 15:50:09

AndroidApp框架

2019-01-07 09:15:10

BAT技術互聯網Java

2020-04-15 09:35:59

Flutter圖片優化

2022-03-04 08:56:58

HTTPDNS 服務器瀏覽器

2016-09-18 17:27:06

2015-09-14 10:18:37

2018-09-14 14:20:43

人肉智能運維
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲乱码一区二区三区在线观看 | caoporn国产精品免费公开 | 亚洲一级淫片 | 91精品免费 | 久久精品日 | 91久久精品 | 日本网站在线看 | 久热国产在线 | 97久久精品午夜一区二区 | 2019天天干天天操 | 在线超碰 | 97av视频在线观看 | 免费观看一级黄色录像 | 日本黄色的视频 | 亚洲一区影院 | 伦理二区 | 精品一二区 | 久久久成人动漫 | 日韩国产中文字幕 | 老外几下就让我高潮了 | 蜜桃视频在线观看免费视频网站www | 欧美久久久久久久 | 久久一区二区三区四区五区 | 91天堂| 久久99精品久久久久久国产越南 | 国产超碰人人爽人人做人人爱 | 国产激情第一页 | 欧美综合久久久 | 成人在线观看网站 | avhd101在线成人播放 | 激情一区二区三区 | 密室大逃脱第六季大神版在线观看 | 国产精品视频一区二区三区不卡 | 国产福利久久 | 国产精品无码久久久久 | 可以在线观看av的网站 | 中文字幕视频在线看 | 久久久久久久国产精品 | 成人激情视频免费在线观看 | 精品久久久久久18免费网站 | 日韩欧美在线视频 |