從輸入域名到瀏覽器展現(xiàn)观挎,整個(gè)過(guò)程發(fā)生了什么?

從輸入域名到瀏覽器展現(xiàn)段化,整個(gè)過(guò)程發(fā)生了什么嘁捷?

本文語(yǔ)法參考

本文參考資料

過(guò)程簡(jiǎn)單概括為

1.輸入域名

2.域名解析

3.服務(wù)器處理

4.網(wǎng)站處理

5.瀏覽器處理

6.繪制網(wǎng)頁(yè)


詳細(xì)過(guò)程

1.輸入域名

我們平時(shí)輸入的域名只是為了方便記憶而誕生的一個(gè)URL的"代名詞"显熏,實(shí)際URL比域名的范圍要大一些雄嚣,那么URL是什么呢?他是統(tǒng)一資源的定位符喘蟆,用于定位互聯(lián)網(wǎng)上的資源现诀,URL是Uniform Resource Location的縮寫(xiě),譯為“統(tǒng)一資源定位符”履肃。通俗地說(shuō)仔沿,URL是Internet上用來(lái)描述信息資源的字符串,主要用在各種WWW客戶程序和服務(wù)器程序上尺棋,特別是著名的Mosaic封锉。采用URL可以用一種統(tǒng)一的格式來(lái)描述各種信息資源绵跷,包括文件、服務(wù)器的地址和目錄等成福。 URL的格式URL的格式由下列三部分組成: - 第一部分: 協(xié)議(或稱為服務(wù)方式)碾局; - 第二部分: 存有該資源的主機(jī)IP地址(有時(shí)也包括端口號(hào),為了方便記憶常用域名代替IP地址)奴艾; - 第三部分: 主機(jī)資源的具體地址净当。如目錄和文件名等。 第一部分和第二部分之間用“://”符號(hào)隔開(kāi)蕴潦,第二部分和第三部分用“/”符號(hào)隔開(kāi)像啼。第一部分和第二部分是不可缺少的,第三部分有時(shí)可以省略潭苞。 例如:輸入 http://www.baidu.com,其中http就是協(xié)議忽冻,這個(gè)協(xié)議還可以是、http、https、ftp某饰、file協(xié)議等等,baidu.com是域名湖笨。那么端口號(hào)又去哪了呢?因?yàn)閔ttp協(xié)議默認(rèn)的端口號(hào)是80蹦骑。也就是說(shuō)我們輸入的實(shí)際是http://www.baidu.com:80赶么,但由于默認(rèn)的關(guān)系,輸入http://www.baidu.com:80http://www.baidu.com是一樣的脊串。然后我們由百度引擎繼續(xù)搜索一個(gè)問(wèn)題辫呻,這是在域名的后面會(huì)以/xxx的形式給出一個(gè)網(wǎng)址,這個(gè)”/“后面的就是資源路徑琼锋,就是你需要找的資源的具體路徑放闺。

2.域名解析

輸入域名后,DNS(域名系統(tǒng))把域名解析成IP地址缕坎,首先怖侦,瀏覽器會(huì)查找瀏覽器緩存,如果沒(méi)有找到就會(huì)從系統(tǒng)緩存Hosts文件中查找是否有該域名和對(duì)應(yīng)IP谜叹,系統(tǒng)中hosts沒(méi)有的話匾寝,就繼續(xù)往上的路由器緩存中找,如果還是沒(méi)有荷腊,就再上一級(jí)艳悔,在ISP DNS(本地名稱服務(wù)器緩存)中找。如果本地名稱服務(wù)器都找不到女仰,則會(huì)繼續(xù)往上查找直到從根域名服務(wù)器找到對(duì)應(yīng)IP猜年。 DNS服務(wù)器 [圖片上傳失敗...(image-42d516-1539498778562)] DNS解析過(guò)程

DNS解析過(guò)程
ps:題主新人抡锈,發(fā)現(xiàn)這里是個(gè)大坑,以后再來(lái)完善

3.服務(wù)器處理

當(dāng)客戶端的 HTTP 請(qǐng)求準(zhǔn)備好后乔外,瀏覽器會(huì)在傳輸層發(fā)起一條到達(dá)服務(wù)器的 TCP 連接床三,位于傳輸層的TCP協(xié)議為傳輸報(bào)文提供可靠的字節(jié)流服務(wù)。它為了方便傳輸杨幼,將大塊的數(shù)據(jù)分割成以報(bào)文段為單位的數(shù)據(jù)包進(jìn)行管理撇簿,并為它們編號(hào),方便服務(wù)器接收時(shí)能準(zhǔn)確地還原報(bào)文信息差购。TCP協(xié)議通過(guò)“三次握手”等方法保證傳輸?shù)陌踩煽克奶薄!叭挝帐帧钡倪^(guò)程是歹撒,發(fā)送端先發(fā)送一個(gè)帶有SYN(synchronize)標(biāo)志的數(shù)據(jù)包給接收端莲组,在一定的延遲時(shí)間內(nèi)等待接收的回復(fù)诊胞。接收端收到數(shù)據(jù)包后暖夭,傳回一個(gè)帶有SYN/ACK標(biāo)志的數(shù)據(jù)包以示傳達(dá)確認(rèn)信息。接收方收到后再發(fā)送一個(gè)帶有ACK標(biāo)志的數(shù)據(jù)包給接收端以示握手成功撵孤。在這個(gè)過(guò)程中迈着,如果發(fā)送端在規(guī)定延遲時(shí)間內(nèi)沒(méi)有收到回復(fù)則默認(rèn)接收方?jīng)]有收到請(qǐng)求,而再次發(fā)送邪码,直到收到回復(fù)為止裕菠。 (引用簡(jiǎn)書(shū) 卐鑫卍 http://www.reibang.com/p/d616d887953a

1

4.網(wǎng)站處理

服務(wù)接收到客戶端發(fā)送的HTTP請(qǐng)求后,服務(wù)器上的的 http 監(jiān)聽(tīng)進(jìn)程會(huì)得到這個(gè)請(qǐng)求闭专,然后一般情況下會(huì)啟動(dòng)一個(gè)新的子進(jìn)程去處理這個(gè)請(qǐng)求奴潘,同時(shí)父進(jìn)程繼續(xù)監(jiān)聽(tīng)。http 服務(wù)器首先會(huì)查看重寫(xiě)規(guī)則影钉,然后如果請(qǐng)求的文件是真實(shí)存在画髓,例如一些圖片,或 html平委、css奈虾、js 等靜態(tài)文件,則會(huì)直接把這個(gè)文件返回廉赔,如果是一個(gè)動(dòng)態(tài)的請(qǐng)求肉微,那么會(huì)根據(jù) url 重寫(xiě)模塊的規(guī)則,把這個(gè)請(qǐng)求重寫(xiě)到一個(gè) rest 風(fēng)格的 url 上蜡塌,然后根據(jù)動(dòng)態(tài)語(yǔ)言的腳本碉纳,來(lái)決定調(diào)用什么類型的動(dòng)態(tài)文件腳本解釋器來(lái)處理這個(gè)請(qǐng)求。 我們以 php 語(yǔ)言為例來(lái)說(shuō)的話馏艾,請(qǐng)求到達(dá)一個(gè) php 的 mvc 框架之后村象,框架首先應(yīng)該會(huì)初始化一些環(huán)境的參數(shù)笆环,例如遠(yuǎn)端 ip,請(qǐng)求參數(shù)等等厚者,然后根據(jù)請(qǐng)求的 url 送到一個(gè)路由器類里面去匹配路由躁劣,路由由上到下逐條匹配,一旦遇到 url 能夠匹配的上库菲,而且請(qǐng)求的方法也能夠命中的話账忘,那么請(qǐng)求就會(huì)由這個(gè)路由所定義的處理方法去處理。 請(qǐng)求進(jìn)入處理函數(shù)之后熙宇,如果客戶端所請(qǐng)求需要瀏覽的內(nèi)容是一個(gè)動(dòng)態(tài)的內(nèi)容鳖擒,那么處理函數(shù)會(huì)相應(yīng)的從數(shù)據(jù)源里面取出數(shù)據(jù),這個(gè)地方一般會(huì)有一個(gè)緩存烫止,例如 memcached 來(lái)減小 db 的壓力蒋荚,如果引入了 orm 框架的話,那么處理函數(shù)直接向 orm 框架索要數(shù)據(jù)就可以了馆蠕,由 orm 框架來(lái)決定是使用內(nèi)存里面的緩存還是從 db 去取數(shù)據(jù)期升,一般緩存都會(huì)有一個(gè)過(guò)期的時(shí)間,而 orm 框架也會(huì)在取到數(shù)據(jù)回來(lái)之后互躬,把數(shù)據(jù)存一份在內(nèi)存緩存中的播赁。 orm 框架負(fù)責(zé)把面向?qū)ο蟮恼?qǐng)求翻譯成標(biāo)準(zhǔn)的 sql 語(yǔ)句,然后送到后端的 db 去執(zhí)行吼渡,db 這里以 mysql 為例的話容为,那么一條 sql 進(jìn)來(lái)之后,db 本身也是有緩存的寺酪,不過(guò) db 的緩存一般是用 sql 語(yǔ)言 hash 來(lái)存取的坎背,也就是說(shuō),想要緩存能夠命中寄雀,除了查詢的字段和方法要一樣以外得滤,查詢的參數(shù)也要完全一模一樣才能夠使用 db 本身的查詢緩存,sql 經(jīng)過(guò)查詢緩存器咙俩,然后就會(huì)到達(dá)查詢分析器耿戚,在這里,db 會(huì)根據(jù)被搜索的數(shù)據(jù)表的索引建立情況阿趁,和 sql 語(yǔ)言本身的特點(diǎn)膜蛔,來(lái)決定使用哪一個(gè)字段的索引,值得一提的是脖阵,即使一個(gè)數(shù)據(jù)表同時(shí)在多個(gè)字段建立了索引皂股,但是對(duì)于一條 sql 語(yǔ)句來(lái)說(shuō),還是只能使用一個(gè)索引命黔,所以這里就需要分析使用哪個(gè)索引效率最高了呜呐,一般來(lái)說(shuō)就斤,sql 優(yōu)化在這個(gè)點(diǎn)上也是很重要的一個(gè)方面。 sql 由 db 返回結(jié)果集后蘑辑,再由 orm 框架把結(jié)果轉(zhuǎn)換成模型對(duì)象洋机,然后由 orm 框架進(jìn)行一些邏輯處理,把準(zhǔn)備好的數(shù)據(jù)洋魂,送到視圖層的渲染引擎去渲染绷旗,渲染引擎負(fù)責(zé)模板的管理,字段的友好顯示副砍,也包括負(fù)責(zé)一些多國(guó)語(yǔ)言之類的任務(wù)衔肢。對(duì)于一條請(qǐng)求在 mvc 中的生命周期,可以參考這里豁翎,臨摹了一個(gè) PHP MVC 框架角骤,在視圖層把頁(yè)面準(zhǔn)備好后,再?gòu)膭?dòng)態(tài)腳本解釋器送回到 http 服務(wù)器心剥,由 http 服務(wù)器把這些正文加上一個(gè)響應(yīng)頭邦尊,封裝成一個(gè)標(biāo)準(zhǔn)的 http 響應(yīng)包,再通過(guò) tcp ip 協(xié)議刘陶,送回到客戶機(jī)瀏覽器胳赌。 (引用:卐鑫卍 http://www.reibang.com/p/d616d887953a簡(jiǎn)單來(lái)說(shuō)這兩步就是服務(wù)器就收指令后牢撼,通過(guò)后臺(tái)處理后返回信息(題主小白匙隔,只能這么理了,后期來(lái)完善)

ku

5.瀏覽器處理

Html字符串被瀏覽器接受后被一句句讀取解析熏版,解析到link標(biāo)簽后重新發(fā)送請(qǐng)求獲取CSS纷责,解析到SCRIPT標(biāo)簽后發(fā)送請(qǐng)求獲取JS,并執(zhí)行代碼撼短,解析到IMG標(biāo)簽后發(fā)送請(qǐng)求獲得圖片資源再膳。 ###6.繪制網(wǎng)頁(yè)### 瀏覽器根據(jù)HTML,CSS計(jì)算得到的渲染樹(shù)曲横,繪制到屏幕上喂柒。 學(xué)到后面再來(lái)補(bǔ)充,看完一些資料才發(fā)現(xiàn)這個(gè)坑真的太大了禾嫉。灾杰。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末熙参,一起剝皮案震驚了整個(gè)濱河市艳吠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌孽椰,老刑警劉巖昭娩,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凛篙,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡栏渺,警方通過(guò)查閱死者的電腦和手機(jī)呛梆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)磕诊,“玉大人削彬,你說(shuō)我怎么就攤上這事⌒阒伲” “怎么了融痛?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)神僵。 經(jīng)常有香客問(wèn)我雁刷,道長(zhǎng),這世上最難降的妖魔是什么保礼? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任沛励,我火速辦了婚禮,結(jié)果婚禮上炮障,老公的妹妹穿的比我還像新娘目派。我一直安慰自己,他們只是感情好胁赢,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布企蹭。 她就那樣靜靜地躺著,像睡著了一般智末。 火紅的嫁衣襯著肌膚如雪谅摄。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,604評(píng)論 1 305
  • 那天系馆,我揣著相機(jī)與錄音送漠,去河邊找鬼。 笑死由蘑,一個(gè)胖子當(dāng)著我的面吹牛闽寡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播尼酿,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼爷狈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了谓媒?” 一聲冷哼從身側(cè)響起淆院,我...
    開(kāi)封第一講書(shū)人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后土辩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體支救,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年拷淘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了各墨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡启涯,死狀恐怖贬堵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情结洼,我是刑警寧澤黎做,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站松忍,受9級(jí)特大地震影響蒸殿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鸣峭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一宏所、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧摊溶,春花似錦爬骤、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至浓镜,卻和暖如春溃列,著一層夾襖步出監(jiān)牢的瞬間劲厌,已是汗流浹背膛薛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留补鼻,地道東北人哄啄。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像风范,于是被迫代替她去往敵國(guó)和親咨跌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

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