輸入URL到頁面渲染的過程

首先是 DNS 查詢客们,如果這一步做了智能 DNS 解析的話,會提供訪問速度最快的 IP 地址回來。
DNS

DNS 的作用就是通過域名查詢到具體的 IP叙淌。
因為 IP 存在數(shù)字和英文的組合(IPv6),很不利于人類記憶愁铺,所以就出現(xiàn)了域名鹰霍。你可以把域名看成是某個 IP 的別名,DNS 就是去查詢這個別名的真正名稱是什么茵乱。
在 TCP 握手之前就已經(jīng)進行了 DNS 查詢茂洒,這個查詢是操作系統(tǒng)自己做的。當你在瀏覽器中想訪問 www.google.com 時瓶竭,會進行一下操作:

  1. 操作系統(tǒng)會首先在本地緩存中查詢 IP
  2. 沒有的話會去系統(tǒng)配置的 DNS 服務器中查詢
  3. 如果這時候還沒得話督勺,會直接去 DNS 根服務器查詢,這一步查詢會找出負責 com 這個一級域名的服務器
  4. 然后去該服務器查詢 google 這個二級域名
  5. 接下來三級域名的查詢其實是我們配置的斤贰,你可以給 www 這個域名配置一個 IP智哀,然后還可以給別的三級域名配置一個 IP
    以上介紹的是 DNS 迭代查詢,還有種是遞歸查詢荧恍,區(qū)別就是前者是由客戶端去做請求瓷叫,后者是由系統(tǒng)配置的 DNS 服務器做請求,得到結(jié)果后將數(shù)據(jù)返回給客戶端。

接下來是 TCP 握手摹菠,應用層會下發(fā)數(shù)據(jù)給傳輸層盒卸,這里 TCP 協(xié)議會指明兩端的端口號,然后下發(fā)給網(wǎng)絡層辨嗽。網(wǎng)絡層中的 IP 協(xié)議會確定 IP 地址世落,并且指示了數(shù)據(jù)傳輸中如何跳轉(zhuǎn)路由器。然后包會再被封裝到數(shù)據(jù)鏈路層的數(shù)據(jù)幀結(jié)構(gòu)中糟需,最后就是物理層面的傳輸了屉佳。

在這一部分中,可以詳細說下 TCP 的握手情況以及 TCP 的一些特性洲押。

當 TCP 握手結(jié)束后就會進行 TLS 握手武花,然后就開始正式的傳輸數(shù)據(jù)。

在這一部分中杈帐,可以詳細說下 TLS 的握手情況以及兩種加密方式的內(nèi)容体箕。

數(shù)據(jù)在進入服務端之前,可能還會先經(jīng)過負責負載均衡的服務器挑童,它的作用就是將請求合理的分發(fā)到多臺服務器上累铅,這時假設(shè)服務端會響應一個 HTML 文件。

首先瀏覽器會判斷狀態(tài)碼是什么站叼,如果是 200 那就繼續(xù)解析娃兽,如果 400 或 500 的話就會報錯,如果 300 的話會進行重定向尽楔,這里會有個重定向計數(shù)器投储,避免過多次的重定向,超過次數(shù)也會報錯阔馋。

瀏覽器開始解析文件玛荞,如果是 gzip 格式的話會先解壓一下,然后通過文件的編碼格式知道該如何去解碼文件呕寝。

文件解碼成功后會正式開始渲染流程勋眯,先會根據(jù) HTML 構(gòu)建 DOM 樹,有 CSS 的話會去構(gòu)建 CSSOM 樹下梢。如果遇到 script 標簽的話客蹋,會判斷是否存在 async 或者 defer ,前者會并行進行下載并執(zhí)行 JS怔球,后者會先下載文件嚼酝,然后等待 HTML 解析完成后順序執(zhí)行浮还。

如果以上都沒有竟坛,就會阻塞住渲染流程直到 JS 執(zhí)行完畢。遇到文件下載的會去下載文件,這里如果使用 HTTP/2 協(xié)議的話會極大的提高多圖的下載效率担汤。

CSSOM 樹和 DOM 樹構(gòu)建完成后會開始生成 Render 樹涎跨,這一步就是確定頁面元素的布局、樣式等等諸多方面的東西

在生成 Render 樹的過程中崭歧,瀏覽器就開始調(diào)用 GPU 繪制隅很,合成圖層,將內(nèi)容顯示在屏幕上了率碾。

這一部分就是渲染原理中講解到的內(nèi)容叔营,可以詳細的說明下這一過程。并且在下載文件時所宰,也可以說下通過 HTTP/2 協(xié)議可以解決隊頭阻塞的問題绒尊。

總的來說這一章節(jié)就是帶著大家從 DNS 查詢開始到渲染出畫面完整的了解一遍過程,將之前學習到的內(nèi)容連接起來仔粥。

當來這一過程遠遠不止這些內(nèi)容婴谱,但是對于大部分人能答出這些內(nèi)容已經(jīng)很不錯了,你如果想了解更加詳細的過程躯泰,可以閱讀這篇文章谭羔。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市麦向,隨后出現(xiàn)的幾起案子瘟裸,更是在濱河造成了極大的恐慌,老刑警劉巖磕蛇,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件景描,死亡現(xiàn)場離奇詭異,居然都是意外死亡秀撇,警方通過查閱死者的電腦和手機超棺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呵燕,“玉大人棠绘,你說我怎么就攤上這事≡倥ぃ” “怎么了氧苍?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長泛范。 經(jīng)常有香客問我让虐,道長,這世上最難降的妖魔是什么罢荡? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任赡突,我火速辦了婚禮对扶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘惭缰。我一直安慰自己浪南,他們只是感情好,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布漱受。 她就那樣靜靜地躺著络凿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪昂羡。 梳的紋絲不亂的頭發(fā)上絮记,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天,我揣著相機與錄音虐先,去河邊找鬼到千。 笑死,一個胖子當著我的面吹牛赴穗,可吹牛的內(nèi)容都是我干的憔四。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼般眉,長吁一口氣:“原來是場噩夢啊……” “哼了赵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起甸赃,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤柿汛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后埠对,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體络断,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年项玛,在試婚紗的時候發(fā)現(xiàn)自己被綠了貌笨。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡襟沮,死狀恐怖锥惋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情开伏,我是刑警寧澤膀跌,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站固灵,受9級特大地震影響捅伤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜巫玻,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一丛忆、第九天 我趴在偏房一處隱蔽的房頂上張望困介。 院中可真熱鬧,春花似錦蘸际、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至姜骡,卻和暖如春导坟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背圈澈。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工惫周, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人康栈。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓递递,卻偏偏與公主長得像,于是被迫代替她去往敵國和親啥么。 傳聞我的和親對象是個殘疾皇子登舞,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容