JavaWeb筆記之——Web請求過程

本文總結(jié)自《深入分析Java Web技術(shù)內(nèi)幕》一書馋贤。全篇內(nèi)容大致先從一個面試經(jīng)常問及的問題說起,然后再介紹各個主要過程。

一個面試問題

輸入一個網(wǎng)址端蛆,到看到頁面,經(jīng)歷了哪些過程酥泛?

這個問題大致可以回答這幾點:DNS域名解析今豆、發(fā)起HTTP請求、負載均衡柔袁、緩存呆躲、CDN等。
下面是書里的一段話捶索,我覺得能夠很好地回答這個問題了:
首先會請求DNS把這個域名解析出對應(yīng)的IP地址插掂,然后根據(jù)這個IP地址在互聯(lián)網(wǎng)上找到對應(yīng)的服務(wù)器,向這個服務(wù)器發(fā)起一個get請求情组,由這個服務(wù)器決定返回默認的數(shù)據(jù)資源給訪問的用戶燥筷。在服務(wù)器端實際上還有很復(fù)雜的業(yè)務(wù)邏輯:服務(wù)器可能有很多臺,到底指定哪臺服務(wù)器來處理請求院崇,這需要一個負載均衡設(shè)備來平均分配所有用戶的請求肆氓;還有請求的數(shù)據(jù)是存儲在分布式緩存里還是一個靜態(tài)文件中,或者是在數(shù)據(jù)庫里底瓣;當數(shù)據(jù)返回瀏覽器時谢揪,瀏覽器解析數(shù)據(jù)發(fā)現(xiàn)還有一些靜態(tài)資源(如CSS、JS或者圖片)時又會發(fā)起另外的HTTP請求捐凭,而這些請求很可能會在CDN上拨扶,那么CDN服務(wù)器又會處理這個用戶的請求。

發(fā)起HTTP請求

發(fā)起HTTP請求就是建立一個Socket連接茁肠,瀏覽器在建立Socket連接之前患民,必須根據(jù)地址欄里輸入的URL的域名DNS解析出IP地址,再根據(jù)這個IP地址和默認的80端口與遠程服務(wù)器建立Socket連接垦梆,然后瀏覽器根據(jù)這個URL組裝成一個get類型的HTTP請求頭匹颤,通過outputStream.write發(fā)送到目標服務(wù)器仅孩,服務(wù)器等待inputStream.read返回數(shù)據(jù),最后斷開這個連接印蓖。
總結(jié):發(fā)起一個HTTP請求的過程就是建立一個Socket通信的過程辽慕。

DNS域名解析

  1. 瀏覽器會檢查緩存中有沒有這個域名對應(yīng)的解析過的IP地址,如果緩存中有赦肃,這個解析過程就將結(jié)束溅蛉。瀏覽器緩存域名是有限制的,不僅瀏覽器緩存大小有限制他宛,而且緩存的時間也有限制船侧,域名被緩存的時間限制可以通過TTL屬性來設(shè)置。
  2. 如果用戶的瀏覽器緩存中沒有厅各,瀏覽器會查找操作系統(tǒng)緩存中是否有這個域名對應(yīng)的DNS解析結(jié)果勺爱。
  3. 如果在本機中仍然無法完成域名的解析,就會真正請求域名服務(wù)器來解析這個域名讯检。在這一步中琐鲁,操作系統(tǒng)會把這個域名發(fā)送給LDNS,即本地區(qū)的域名服務(wù)器人灼。這個域名解析服務(wù)器一般都會緩存域名解析結(jié)果围段,80%的域名解析都到這里就能夠完成,所以LDNS主要承擔了域名的解析工作投放。
  4. 如果LDNS仍然沒有命中奈泪,再到Root Server域名服務(wù)器請求解析。
  5. 根域名服務(wù)器返回給本地域名服務(wù)器一個所查詢域的主域名服務(wù)器(gTLD Server)地址灸芳。
  6. 本地域名服務(wù)器(Local DNS Server)再向上一步返回的gTLD服務(wù)器發(fā)送請求涝桅。
  7. 接受請求的gTLD服務(wù)器查找并返回此域名對應(yīng)的Name Server域名服務(wù)器的地址,這個Name Server通常就是你注冊的域名服務(wù)器烙样。
  8. Name Server域名服務(wù)器會查詢存儲的域名和IP的映射關(guān)系表冯遂。
  9. 返回該域名對應(yīng)的IP和TTL值,Local DNS Server會緩存這個域名和IP的對應(yīng)關(guān)系谒获,緩存時間由TTL值控制蛤肌。
  10. 把解析結(jié)果返回給用戶,域名解析過程結(jié)束批狱。

DNS域名解析圖如下(省略第一裸准、二步在本機完成的過程):


DNS域名解析.png

CDN

CDN就是內(nèi)容分布網(wǎng)絡(luò)(Content Delivery Network)。其目的是通過在現(xiàn)有的Internet中增加一層新的網(wǎng)絡(luò)架構(gòu)赔硫,將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的網(wǎng)絡(luò)“邊緣”炒俱,使用戶可以就近取得所需的內(nèi)容,提高用戶訪問網(wǎng)絡(luò)的響應(yīng)速度。

CDN都以緩存網(wǎng)站中的靜態(tài)數(shù)據(jù)為主权悟,如CSS恼蓬、JS、圖片和靜態(tài)頁面等數(shù)據(jù)僵芹,用戶在從主站服務(wù)器請求到動態(tài)內(nèi)容后,再從CDN上下載這些靜態(tài)數(shù)據(jù)小槐,從而加速網(wǎng)頁數(shù)據(jù)內(nèi)容的下載速度拇派。

拿到DNS解析結(jié)果,用戶就直接去這個CDN節(jié)點訪問這個靜態(tài)文件了凿跳,如果這個節(jié)點中所請求的文件不存在件豌,就會再回到源站去獲取這個文件,然后再返回給用戶控嗜。

負載均衡

負載均衡(Load Balance)就是對工作任務(wù)進行平衡茧彤、分攤到多個操作單元上執(zhí)行,如圖片服務(wù)器疆栏、應(yīng)用服務(wù)器等曾掂,共同完成工作任務(wù)。它可以提高服務(wù)器響應(yīng)速度及利用效率壁顶,避免軟件或者硬件模塊出現(xiàn)單點失效珠洗,解決網(wǎng)絡(luò)擁塞問題,實現(xiàn)地理位置無關(guān)性若专,為用戶提供較一致的訪問質(zhì)量许蓖。通常有三種負載均衡架構(gòu),分別是鏈路負載均衡调衰、集群負載均衡和操作系統(tǒng)負載均衡膊爪。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市嚎莉,隨后出現(xiàn)的幾起案子米酬,更是在濱河造成了極大的恐慌,老刑警劉巖趋箩,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件淮逻,死亡現(xiàn)場離奇詭異,居然都是意外死亡阁簸,警方通過查閱死者的電腦和手機爬早,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來启妹,“玉大人筛严,你說我怎么就攤上這事∪拿祝” “怎么了桨啃?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵车胡,是天一觀的道長。 經(jīng)常有香客問我照瘾,道長匈棘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任析命,我火速辦了婚禮主卫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鹃愤。我一直安慰自己簇搅,他們只是感情好,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布软吐。 她就那樣靜靜地躺著瘩将,像睡著了一般。 火紅的嫁衣襯著肌膚如雪凹耙。 梳的紋絲不亂的頭發(fā)上姿现,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音肖抱,去河邊找鬼建钥。 笑死,一個胖子當著我的面吹牛虐沥,可吹牛的內(nèi)容都是我干的熊经。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼欲险,長吁一口氣:“原來是場噩夢啊……” “哼镐依!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起天试,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤槐壳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后喜每,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體务唐,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年带兜,在試婚紗的時候發(fā)現(xiàn)自己被綠了枫笛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡刚照,死狀恐怖刑巧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤啊楚,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布吠冤,位于F島的核電站,受9級特大地震影響恭理,放射性物質(zhì)發(fā)生泄漏拯辙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一颜价、第九天 我趴在偏房一處隱蔽的房頂上張望涯保。 院中可真熱鬧,春花似錦拍嵌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至茄猫,卻和暖如春狈蚤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背划纽。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工脆侮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人勇劣。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓靖避,卻偏偏與公主長得像,于是被迫代替她去往敵國和親比默。 傳聞我的和親對象是個殘疾皇子幻捏,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

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