從輸入url到頁面展示到底發(fā)生了什么

本文的目的是通過輸入url之后發(fā)生的事情來做知識的總結和擴展。
總的過程大概如下:

1、輸入地址

當我們開始在瀏覽器中輸入網(wǎng)址的時候夫晌,瀏覽器其實就已經(jīng)在智能的匹配可能得 url 了,他會從歷史記錄曙博,書簽等地方,找到已經(jīng)輸入的字符串可能對應的 url怜瞒,然后給出智能提示父泳,讓你可以補全url地址。對于 google的chrome 的瀏覽器吴汪,他甚至會直接從緩存中把網(wǎng)頁展示出來惠窄,就是說,你還沒有按下 enter漾橙,頁面就出來了杆融。

2、瀏覽器查找域名的 IP 地址

1近刘、請求一旦發(fā)起擒贸,瀏覽器首先要做的事情就是解析這個域名,一般來說觉渴,瀏覽器會首先查看本地硬盤的 hosts 文件介劫,看看其中有沒有和這個域名對應的規(guī)則,如果有的話就直接使用 hosts 文件里面的 ip 地址案淋。
  2座韵、如果在本地的 hosts 文件沒有能夠找到對應的 ip 地址,瀏覽器會發(fā)出一個 DNS請求到本地DNS服務器 踢京。本地DNS服務器一般都是你的網(wǎng)絡接入服務器商提供誉碴,比如中國電信,中國移動瓣距。
  3黔帕、查詢你輸入的網(wǎng)址的DNS請求到達本地DNS服務器之后,本地DNS服務器會首先查詢它的緩存記錄蹈丸,如果緩存中有此條記錄成黄,就可以直接返回結果,此過程是遞歸的方式進行查詢逻杖。如果沒有奋岁,本地DNS服務器還要向DNS根服務器進行查詢。
  4荸百、根DNS服務器沒有記錄具體的域名和IP地址的對應關系闻伶,而是告訴本地DNS服務器,你可以到域服務器上去繼續(xù)查詢够话,并給出域服務器的地址蓝翰。這種過程是迭代的過程。
  5更鲁、本地DNS服務器繼續(xù)向域服務器發(fā)出請求霎箍,在這個例子中,請求的對象是.com域服務器澡为。.com域服務器收到請求之后漂坏,也不會直接返回域名和IP地址的對應關系,而是告訴本地DNS服務器媒至,你的域名的解析服務器的地址顶别。
  6、最后拒啰,本地DNS服務器向域名的解析服務器發(fā)出請求驯绎,這時就能收到一個域名和IP地址對應關系,本地DNS服務器不僅要把IP地址返回給用戶電腦谋旦,還要把這個對應關系保存在緩存中剩失,以備下次別的用戶查詢時屈尼,可以直接返回結果,加快網(wǎng)絡訪問拴孤。


知識擴展:

** 1)什么是DNS脾歧?**
   DNS(Domain Name System,域名系統(tǒng))演熟,因特網(wǎng)上作為域名和IP地址相互映射的一個分布式數(shù)據(jù)庫鞭执,能夠使用戶更方便的訪問互聯(lián)網(wǎng),而不用去記住能夠被機器直接讀取的IP數(shù)串芒粹。通過主機名兄纺,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)。
  通俗的講化漆,我們更習慣于記住一個網(wǎng)站的名字估脆,比如www.baidu.com,而不是記住它的ip地址,比如:167.23.10.2座云。而計算機更擅長記住網(wǎng)站的ip地址旁蔼,而不是像www.baidu.com等鏈接。因為疙教,DNS就相當于一個電話本棺聊,比如你要找www.baidu.com這個域名,那我翻一翻我的電話本贞谓,我就知道限佩,哦,它的電話(ip)是167.23.10.2裸弦。

2)DNS查詢的兩種方式:
  遞歸查詢和迭代查詢

1祟同、遞歸解析

當局部DNS服務器自己不能回答客戶機的DNS查詢時,它就需要向其他DNS服務器進行查詢理疙。此時有兩種方式晕城,局部DNS服務器自己負責向其他DNS服務器進行查詢,一般是先向該域名的根域服務器查詢窖贤,再由根域名服務器一級級向下查詢砖顷。最后得到的查詢結果返回給局部DNS服務器,再由局部DNS服務器返回給客戶端赃梧。

2滤蝠、迭代解析

當局部DNS服務器自己不能回答客戶機的DNS查詢時,也可以通過迭代查詢的方式進行解析授嘀,局部DNS服務器不是自己向其他DNS服務器進行查詢物咳,而是把能解析該域名的其他DNS服務器的IP地址返回給客戶端DNS程序,客戶端DNS程序再繼續(xù)向這些DNS服務器進行查詢蹄皱,直到得到查詢結果為止览闰。也就是說芯肤,迭代解析只是幫你找到相關的服務器而已,而不會幫你去查压鉴。比如說:baidu.com的服務器ip地址在192.168.4.5這里纷妆,你自己去查吧,本人比較忙晴弃,只能幫你到這里了。

DNS域名稱空間的組織方式
  我們在前面有說到根DNS服務器逊拍,域DNS服務器上鞠,這些都是DNS域名稱空間的組織方式。按其功能命名空間中用來描述 DNS 域名稱的五個類別的介紹詳見下表中芯丧,以及與每個名稱類型的示例

Paste_Image.png

DNS負載均衡
  當一個網(wǎng)站有足夠多的用戶的時候芍阎,假如每次請求的資源都位于同一臺機器上面,那么這臺機器隨時可能會蹦掉缨恒。處理辦法就是用DNS負載均衡技術谴咸,它的原理是在DNS服務器中為同一個主機名配置多個IP地址,在應答DNS查詢時,DNS服務器對每個查詢將以DNS文件中主機記錄的IP地址按順序返回不同的解析結果,將客戶端的訪問引導到不同的機器上去,使得不同的客戶端訪問不同的服務器,從而達到負載均衡的目的?例如可以根據(jù)每臺機器的負載量,該機器離用戶地理位置的距離等等骗露。

3岭佳、瀏覽器向 web 服務器發(fā)送一個 HTTP 請求

拿到域名對應的IP地址之后,瀏覽器會以一個隨機端口(1024
TCP連接,如圖所示:

Paste_Image.png

建立了TCP連接之后萧锉,發(fā)起一個http請求珊随。一個典型的 http request header 一般需要包括請求的方法,例如 GET 或者 POST 等柿隙,不常用的還有 PUT 和 DELETE 叶洞、HEAD、OPTION以及 TRACE 方法禀崖,一般的瀏覽器只能發(fā)起 GET 或者 POST 請求衩辟。

客戶端向服務器發(fā)起http請求的時候,會有一些請求信息波附,請求信息包含三個部分:
  | 請求方法URI協(xié)議/版本
| 請求頭(Request Header)
  | 請求正文:
下面是一個完整的HTTP請求例子:

GET/sample.jspHTTP/1.1
Accept:image/gif.image/jpeg,*/*
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
Accept-Encoding:gzip,deflate<br />
username=jinqiao&password=1234

注意:最后一個請求頭之后是一個空行艺晴,發(fā)送回車符和換行符,通知服務器以下不再有請求頭掸屡。
(1) 請求的第一行是“方法URL議/版本”:GET/sample.jsp HTTP/1.1
(2) 請求頭(Request Header)
   請求頭包含許多有關的客戶端環(huán)境和請求正文的有用信息财饥。例如,請求頭可以聲明瀏覽器所用的語言折晦,請求正文的長度等钥星。

Accept:image/gif.image/jpeg.*/*
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0)
Accept-Encoding:gzip,deflate.

(3)請求正文
   求頭和請求正文之間是一個空行,這個行非常重要满着,它表示請求頭已經(jīng)結束谦炒,接下來的是請求正文贯莺。請求正文中可以包含客戶提交的查詢字符串信息:

username=jinqiao&password=1234

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市宁改,隨后出現(xiàn)的幾起案子缕探,更是在濱河造成了極大的恐慌,老刑警劉巖还蹲,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爹耗,死亡現(xiàn)場離奇詭異,居然都是意外死亡谜喊,警方通過查閱死者的電腦和手機潭兽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來斗遏,“玉大人山卦,你說我怎么就攤上這事∷写危” “怎么了账蓉?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長逾一。 經(jīng)常有香客問我铸本,道長,這世上最難降的妖魔是什么遵堵? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任归敬,我火速辦了婚禮,結果婚禮上鄙早,老公的妹妹穿的比我還像新娘汪茧。我一直安慰自己,他們只是感情好限番,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布舱污。 她就那樣靜靜地躺著,像睡著了一般弥虐。 火紅的嫁衣襯著肌膚如雪扩灯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天霜瘪,我揣著相機與錄音珠插,去河邊找鬼。 笑死颖对,一個胖子當著我的面吹牛捻撑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼顾患,長吁一口氣:“原來是場噩夢啊……” “哼番捂!你這毒婦竟也來了?” 一聲冷哼從身側響起江解,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤设预,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后犁河,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鳖枕,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年桨螺,在試婚紗的時候發(fā)現(xiàn)自己被綠了宾符。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡彭谁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出允扇,到底是詐尸還是另有隱情缠局,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布考润,位于F島的核電站狭园,受9級特大地震影響,放射性物質發(fā)生泄漏糊治。R本人自食惡果不足惜唱矛,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望井辜。 院中可真熱鬧绎谦,春花似錦、人聲如沸粥脚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽刷允。三九已至冤留,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間树灶,已是汗流浹背纤怒。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留天通,地道東北人泊窘。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親州既。 傳聞我的和親對象是個殘疾皇子谜洽,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

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