一次網(wǎng)絡請求的流程

網(wǎng)絡請求的流程

我們來表述一個瀏覽器發(fā)出HTTP請求的過程:
首先盈魁,我們在瀏覽器輸入了URL(例 :www.baidu.com),按下回車彬碱,開始我們的HTTP請求

1.通過URL找IP

首先我們的瀏覽器是不認識baidu.com這個域名的豆胸,(注意:是baidu.com,不是www.baidu.com。 因為www是服務器的名字巷疼,而baidu.com是域名晚胡,相當于這個服務器的地址,com是公司的意義,baidu是公司名搬泥,www是公司的一個服務器名稱)桑寨,要將這個服務器的IP地址找到。

如何去找IP地址呢忿檩,首先先是本地的緩存尉尾,一般是以Hosts文件的形式存在,維持著一個帶域名的服務器地址對IP的對應關(guān)系燥透,路由器緩存(也算是DNS服務器緩存)

如果沒有結(jié)果沙咏,則會向上層DNS服務器詢問,上層DNS服務器的本地緩存中如果沒有該記錄班套,則再向上層詢問肢藐,一直到DNS根服務器。

在根域名服務器中雖然沒有每個域名的具體信息吱韭,但儲存了負責每個域(如COM吆豹、NET、ORG等)的解析的域名服務器的地址信息理盆。根域名服務器會將其管轄范圍內(nèi)頂級域名(如.com)服務器IP告訴本地DNS服務器痘煤,這樣你的域名查詢請求會進入到相應的頂級域名服務器。頂級域名服務器收到請求后查看區(qū)域文件記錄猿规,若找到則將其管轄范圍內(nèi)主域名(不帶任何前綴的域名衷快,如 baidu.com)服務器的IP地址告訴本地DNS服務器。如果還是沒有找到姨俩,則進入到下一級域名服務器進行查找蘸拔。如此重復,直到找到正確的 結(jié)果為止环葵,返回 IP地址結(jié)果給本地DNS服務器调窍。

本地DNS服務器緩存結(jié)果,設置(Time-To-Live)即一條域名解析記錄在DNS服務器上緩存時間张遭,關(guān)于TTL如果IP經(jīng)常改變陨晶,那么TTL設的短一點長一點都沒有太大的 影響,而如果IP經(jīng)常不變帝璧,可以把TTL時間拉長,這樣有利于提高命中率湿刽。

2.對IP結(jié)果建立TCP連接

自己主機IP端口的對目標IP的端口(例:http://www.baidu.com http協(xié)議所占用的TCP端口為80端口)三次握手建立TCP連接的烁。

3.向服務器發(fā)送數(shù)據(jù)

瀏覽器將網(wǎng)絡請求封裝成HTTP報文,把HTTP報文通過TCP的分包诈闺,分成一個個TCP數(shù)據(jù)包渴庆。IP層把上層傳輸層數(shù)據(jù)包打包成IP層數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更低層數(shù)據(jù)鏈路層,相反襟雷,IP層也把從低層接收來的數(shù)據(jù)包傳送到更高層TCP或UDP層刃滓。(補:IP數(shù)據(jù)包是不可靠的,因為IP并沒有做任何事情來確認數(shù)據(jù)包是否按順序發(fā)送的或者有沒有被破壞耸弄,IP數(shù)據(jù)包中含有發(fā)送它的主機的地址(源地址)和接收它的主機的地址(目的地址))

通過這套封裝包過程咧虎,發(fā)送到服務器端,服務器端則是一個拆包的過程计呈,IP層是不可靠的砰诵,所以沒有確認的機制,而在上層的TCP層則會對數(shù)據(jù)包的可靠性進行驗證捌显,丟失則會重傳數(shù)據(jù)茁彭。保證傳輸?shù)目煽啃浴7掌髯罱K解包會拼接成一個完整的HTTP報文扶歪,完成整個數(shù)據(jù)的發(fā)送理肺。

4.服務器解析,并返回

對HTTP報文進行解析善镰,根據(jù)HTTP報文決定它請求了什么妹萨。將處理的結(jié)果組裝成響應報文(如www.baidu.com , 請求報文為GET,要獲取的是缺省值默認的index.html這個主頁媳禁,則返回網(wǎng)頁的源碼眠副,將網(wǎng)頁源碼添加到響應報文正文中),其中比較關(guān)鍵的是狀態(tài)碼(200OK表示成功沒毛部⒒)囱怕,然后將響應報文,通過之前的過程返還給咱們的主機IP毫别。

5.瀏覽器解析HTML

瀏覽器加載顯示html的順序是:從上到下娃弓,渲染的順序也是從上到下,下載和渲染是同時進行的岛宦。如果遇到語義解釋性的標簽嵌入文件(JS腳本台丛,CSS 下載過程會啟用單獨連接進行下載,并且在下載后進行解析砾肺,解析過程中挽霉,停止頁面所有往下元素的下載(斷點)。最終加載完成顯示在瀏覽器上变汪。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末侠坎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子裙盾,更是在濱河造成了極大的恐慌实胸,老刑警劉巖他嫡,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異庐完,居然都是意外死亡钢属,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門门躯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來淆党,“玉大人,你說我怎么就攤上這事生音∧瘢” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵缀遍,是天一觀的道長慕匠。 經(jīng)常有香客問我,道長域醇,這世上最難降的妖魔是什么台谊? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮譬挚,結(jié)果婚禮上锅铅,老公的妹妹穿的比我還像新娘。我一直安慰自己减宣,他們只是感情好盐须,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著漆腌,像睡著了一般贼邓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機與錄音趁矾,去河邊找鬼。 笑死酝陈,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼誉简,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了盟广?” 一聲冷哼從身側(cè)響起闷串,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎衡蚂,沒想到半個月后窿克,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡毛甲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年年叮,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片玻募。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡只损,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出七咧,到底是詐尸還是另有隱情跃惫,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布艾栋,位于F島的核電站爆存,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蝗砾。R本人自食惡果不足惜先较,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望悼粮。 院中可真熱鬧闲勺,春花似錦、人聲如沸扣猫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽申尤。三九已至癌幕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瀑凝,已是汗流浹背序芦。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留粤咪,地道東北人谚中。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像寥枝,于是被迫代替她去往敵國和親宪塔。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

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