詳細(xì)版:
1、瀏覽器會(huì)開啟一個(gè)線程來處理這個(gè)請求躲因,對(duì) URL 分析判斷如果是 http 協(xié)議就按照 Web 方式來處理;
2早敬、調(diào)用瀏覽器內(nèi)核中的對(duì)應(yīng)方法,比如 WebView 中的 loadUrl 方法;
3大脉、通過DNS解析獲取網(wǎng)址的IP地址搞监,設(shè)置 UA 等信息發(fā)出第二個(gè)GET請求;
4、進(jìn)行HTTP協(xié)議會(huì)話镰矿,客戶端發(fā)送報(bào)頭(請求報(bào)頭);
5琐驴、進(jìn)入到web服務(wù)器上的 Web Server,如 Apache秤标、Tomcat绝淡、Node.JS 等服務(wù)器;
6、進(jìn)入部署好的后端應(yīng)用苍姜,如 PHP牢酵、Java、JavaScript衙猪、Python 等馍乙,找到對(duì)應(yīng)的請求處理;
7、處理結(jié)束回饋報(bào)頭垫释,此處如果瀏覽器訪問過丝格,緩存上有對(duì)應(yīng)資源,會(huì)與服務(wù)器最后修改時(shí)間對(duì)
比饶号,一致則返回304;
8铁追、瀏覽器開始下載html文檔(響應(yīng)報(bào)頭,狀態(tài)碼200)茫船,同時(shí)使用緩存;
9琅束、文檔樹建立,根據(jù)標(biāo)記請求所需指定MIME類型的文件(比如css算谈、js),同時(shí)設(shè)置了cookie;
10涩禀、頁面開始渲染DOM,JS根據(jù)DOM API操作DOM,執(zhí)行事件綁定等然眼,頁面顯示完成艾船。
簡潔版:
瀏覽器根據(jù)請求的URL交給DNS域名解析,找到真實(shí)IP,向服務(wù)器發(fā)起請求屿岂;
服務(wù)器交給后臺(tái)處理完成后返回?cái)?shù)據(jù)践宴,瀏覽器接收文件(HTML、JS爷怀、CSS阻肩、圖象等);
瀏覽器對(duì)加載到的資源(HTML运授、JS烤惊、CSS等)進(jìn)行語法解析,建立相應(yīng)的內(nèi)部數(shù)據(jù)結(jié)構(gòu)(如
HTML的DOM)吁朦, 載入解析到的資源文件柒室,渲染頁面,完成逗宜。