以輸入www.baidu.com為例
一、瀏覽器查找域名并解析到對(duì)應(yīng)的IP
1)檢索查找:
- 瀏覽器自己的DNS緩存。
- 操作系統(tǒng)的DNS緩存。
- 路由器緩存。
- ISP DNS 緩存。
2)遞歸搜索:
首先在本地域名服務(wù)器中查詢IP地址,如果沒(méi)有找到的情況下,本地域名服務(wù)器會(huì)向根域名服務(wù)器發(fā)送一個(gè)請(qǐng)求,如果根域名服務(wù)器也不存在該域名時(shí),本地域名會(huì)向com頂級(jí)域名服務(wù)器發(fā)送一個(gè)請(qǐng)求,依次類推下去。直到最后本地域名服務(wù)器得到baidu的IP地址并把它緩存到本地,供下次查詢使用。
3)至此,瀏覽器已經(jīng)得到了域名對(duì)應(yīng)的 IP 地址。
二、建立TCP連接,三次握手:
1.主機(jī)向服務(wù)器發(fā)送一個(gè)建立連接的請(qǐng)求;
2.服務(wù)器接到請(qǐng)求后發(fā)送同意連接的信號(hào);
3.主機(jī)接到同意連接的信號(hào)后,再次向服務(wù)器發(fā)送了確認(rèn)信號(hào),自此,主機(jī)與服務(wù)器兩者建立了連接。
三、瀏覽器給web服務(wù)器發(fā)送HTTP請(qǐng)求:
瀏覽器根據(jù) URL 內(nèi)容生成 HTTP 請(qǐng)求,請(qǐng)求中包含請(qǐng)求文件的位置、請(qǐng)求文件的方式等等;
四、服務(wù)器響應(yīng):
1)服務(wù)器接到請(qǐng)求后,會(huì)根據(jù) HTTP 請(qǐng)求中的內(nèi)容來(lái)決定如何獲取相應(yīng)的 HTML 文件;
2)服務(wù)器將得到的 HTML 文件發(fā)送給瀏覽器;
五、瀏覽器對(duì)頁(yè)面進(jìn)行渲染,呈現(xiàn)給用戶:
1)瀏覽器解析html源碼,然后創(chuàng)建DOM樹(shù)。
2)瀏覽器解析CSS代碼,計(jì)算出最終的樣式數(shù)據(jù)。
3)構(gòu)建出DOM樹(shù),并且計(jì)算出樣式數(shù)據(jù)后,進(jìn)一步構(gòu)建渲染樹(shù)(rendering tree)。
4)一旦渲染樹(shù)創(chuàng)建好了,瀏覽器就可以根據(jù)渲染樹(shù)直接把頁(yè)面繪制到屏幕上。