瀏覽器輸入url以后都發(fā)生了什么

從輸入一個網(wǎng)址開始瓮顽,都調(diào)用了哪些服務县好,經(jīng)歷了哪些步驟,深度解析暖混。以輸入www.google.com為例缕贡。

1. Client端

一般來說,這里的Client指用戶,即browser瀏覽器晾咪。這里我們以輸入google.com為例收擦。

1.1 輸入提示

瀏覽器會根據(jù)歷史訪問,書簽等信息給出輸入建議谍倦。

還會根據(jù)默認搜索引擎的搜索記錄塞赂,去匹配最近的搜索記錄。

1.2 url解析

如果是不合法的地址昼蛀,會轉(zhuǎn)給默認的搜索引擎,例如如果你正在使用chrome宴猾,可以在url輸入框輸入你想要搜索的內(nèi)容,然后搜索引擎會根據(jù)關鍵字進行搜索叼旋。

HSTS列表 安全策略機制仇哆,強行使用https

1.3 DNS解析

域名通過DNS轉(zhuǎn)化為ip地址,這個轉(zhuǎn)化主要是為了人機交互的友好型夫植。沒有人喜歡記一堆數(shù)字來訪問一個網(wǎng)站讹剔。DNS做的事情就是把你輸入的www.google.com翻譯成計算機可以理解的IP地址,類似于192.188.1.1這種樣子详民。

1.3.1查詢過程

在解析的過程中辟拷,瀏覽器會由近及遠尋找是否有緩存信息,即存沒存從域名到地址的映射阐斜,整個查詢過程分為如下幾步衫冻,值得注意的是一旦查詢到,就會立刻返回谒出,不會再繼續(xù)執(zhí)行下去了隅俘。

  1. 查看瀏覽器內(nèi)部緩存

瀏覽器內(nèi)會會存有在一段時間內(nèi)你曾經(jīng)訪問過的網(wǎng)站的域名地址的映射。

  1. 系統(tǒng)緩存

操作系統(tǒng)的緩存笤喳。瀏覽器會發(fā)出system call为居, 去詢問操作系統(tǒng)是否存有相應的映射。

  1. 路由器緩存杀狡, ISP緩存

查詢路由器的緩存蒙畴。如果在路由器緩存中沒有找到映射,就會去ISP(Internet Service Provider)處去尋找

  1. 本地DNS服務器

  2. 域名服務器 根域服務器 -> 頂級域名服務器

尋找方式類似于一個樹狀結(jié)構呜象,從最底層的子葉開始向上遍歷膳凝,不停向更高級的域名服務器發(fā)出請求。這個過程會不停發(fā)送攜帶有請求和IP地址的數(shù)據(jù)包恭陡,會經(jīng)過在client和server之間的多個網(wǎng)路設備直到其到達正確的DNS服務器蹬音。

2 網(wǎng)絡

找到了正確的IP地址以后就要開始建立連接了,建立連接的過程一般會使用TCP協(xié)議休玩,通過三次握手建立連接著淆。

2.1 TCP連接

會用TCP劫狠,建立連接。并在Client和Server之間傳遞數(shù)據(jù)包永部。

2.1.1 IP封裝 socket

2.1.2 TCP 三次握手

  1. Client 發(fā)出建立連接的請求独泞。數(shù)據(jù)包攜帶有SYN
  2. 如果Server有開放的端口苔埋,可以接受并建立連接懦砂,那么server會返回SYN + ACK, 告訴Client我可以接受你的請求。
  3. Client收到Server的回應讲坎,發(fā)送ACK給Server孕惜。 連接建立。

給一個知乎連接晨炕,為什么是三次握手衫画,不是兩次或者四次? 非常有意思的例子瓮栗。

2.1.3 TCP 四次揮手

  1. Client發(fā)起中斷請求削罩,發(fā)送FIN到server
  2. Server收到請求,可能數(shù)據(jù)還沒有發(fā)完费奸。這個時候不會關閉socket弥激,而是回復ACK,告訴Client知道了
  3. Client進入Fin_Wait狀態(tài)愿阐,繼續(xù)等待Server端的FIN報文微服。Server端發(fā)送完畢后,會向Client發(fā)送FIN
  4. Client收到后就回復ACK缨历,并關閉連接

3 Server

這里主要描述TCP連接建立和斷開之間發(fā)生的一些事情以蕴。

TCP/IP是個協(xié)議組,是網(wǎng)絡層和傳輸層的協(xié)議辛孵。Client首先建立一條與服務器的TCP連接(上文中的三次握手)丛肮。而后Client發(fā)送HTTP請求,這里為了獲得頁面魄缚,會發(fā)送一個GET請求給服務器宝与。請求會包含瀏覽器ID,用戶數(shù)據(jù)頭冶匹,連接頭(包含額外信息习劫,比如是否需要保持TCP連接等),從cookie獲取的數(shù)據(jù)等徙硅。

Server收到Client的Request榜聂,會將請求傳遞給Request Handler,去處理請求(從數(shù)據(jù)庫查找數(shù)據(jù)嗓蘑,處理數(shù)據(jù)须肆,構建Response)。構建完畢后會返回一個Response桩皿。值得注意的是這個Response里會含有狀態(tài)信息:

  • 1xx informational message only —— 包含信息
  • 2xx success of some kind ——成功信息
  • 3xx redirects the client to another URL ——將Client轉(zhuǎn)到其他URL
  • 4xx indicates an error on the client's part ——Client端錯誤
  • 5xx indicates an error on the server's part ——Server端錯誤

4 頁面渲染

瀏覽器根據(jù)Resonse返回數(shù)據(jù)豌汇,渲染出DOM樹,將返回的數(shù)據(jù)呈現(xiàn)在頁面上泄隔。

Reference

https://github.com/sunyongjian/blog/issues/34

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拒贱,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子佛嬉,更是在濱河造成了極大的恐慌逻澳,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暖呕,死亡現(xiàn)場離奇詭異斜做,居然都是意外死亡,警方通過查閱死者的電腦和手機湾揽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門瓤逼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人库物,你說我怎么就攤上這事霸旗。” “怎么了戚揭?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵诱告,是天一觀的道長。 經(jīng)常有香客問我民晒,道長精居,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任镀虐,我火速辦了婚禮箱蟆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘刮便。我一直安慰自己空猜,他們只是感情好,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布恨旱。 她就那樣靜靜地躺著辈毯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪搜贤。 梳的紋絲不亂的頭發(fā)上谆沃,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天,我揣著相機與錄音仪芒,去河邊找鬼唁影。 笑死耕陷,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的据沈。 我是一名探鬼主播哟沫,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼锌介!你這毒婦竟也來了嗜诀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤孔祸,失蹤者是張志新(化名)和其女友劉穎隆敢,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體崔慧,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡拂蝎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了尊浪。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匣屡。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖拇涤,靈堂內(nèi)的尸體忽然破棺而出捣作,到底是詐尸還是另有隱情,我是刑警寧澤鹅士,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布券躁,位于F島的核電站,受9級特大地震影響掉盅,放射性物質(zhì)發(fā)生泄漏也拜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一趾痘、第九天 我趴在偏房一處隱蔽的房頂上張望慢哈。 院中可真熱鬧,春花似錦永票、人聲如沸卵贱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽键俱。三九已至,卻和暖如春世分,著一層夾襖步出監(jiān)牢的瞬間编振,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工臭埋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留踪央,地道東北人臀玄。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像杯瞻,于是被迫代替她去往敵國和親镐牺。 傳聞我的和親對象是個殘疾皇子炫掐,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

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