- DNS解析
查找瀏覽器緩存
查找操作系統(tǒng)緩存
查找路由器緩存
查找ISP DNS 緩存
遞歸查找
查詢根域名服務(wù)器 是否有目標域名的信息,如果沒有,則傳至 子域名服務(wù)器 進行查詢
2.TCP連接
在通過第一步的DNS域名解析后成畦,獲取到了服務(wù)器的IP地址硫惕,在獲取到IP地址后极阅,便會開始建立一次連接闪水,這是由TCP協(xié)議完成的鹦倚,主要通過三次握手進行連接孕索。
第一次握手: 建立連接時澎办,客戶端發(fā)送syn包(syn=j)到服務(wù)器蘑志,并進入SYN_SENT狀態(tài),等待服務(wù)器確認斥铺;
第二次握手: 服務(wù)器收到syn包彻桃,必須確認客戶的SYN(ack=j+1),同時自己也發(fā)送一個SYN包(syn=k)晾蜘,即SYN+ACK包邻眷,此時服務(wù)器進入SYN_RECV狀態(tài);
第三次握手: 客戶端收到服務(wù)器的SYN+ACK包剔交,向服務(wù)器發(fā)送確認包ACK(ack=k+1)肆饶,此包發(fā)送完畢,客戶端和服務(wù)器進入ESTABLISHED(TCP連接成功)狀態(tài)岖常,完成三次握手驯镊。
完成三次握手,客戶端與服務(wù)器開始傳送數(shù)據(jù)竭鞍。
3.瀏覽器向服務(wù)器發(fā)送HTTP請求
4.瀏覽器接收響應(yīng)
服務(wù)器在收到瀏覽器發(fā)送的HTTP請求之后板惑,會將收到的HTTP報文封裝成HTTP的Request對象,并通過不同的Web服務(wù)器進行處理偎快,處理完的結(jié)果以HTTP的Response對象返回冯乘,主要包括狀態(tài)碼,響應(yīng)頭晒夹,響應(yīng)報文三個部分裆馒。
5.瀏覽器渲染
渲染HTML頁面
解析DOM、CSSOM
根據(jù)DOM丐怯、CSSOM計算render tree
根據(jù)render tree進行l(wèi)ayout
渲染到頁面
6.關(guān)閉TCP連接或繼續(xù)保持連接
第一次揮手是瀏覽器發(fā)完數(shù)據(jù)后喷好,發(fā)送FIN請求斷開連接。
第二次揮手是服務(wù)器發(fā)送ACK表示同意响逢,如果在這一次服務(wù)器也發(fā)送FIN請求斷開連接似乎也沒有不妥绒窑,但考慮到服務(wù)器可能還有數(shù)據(jù)要發(fā)送,所以服務(wù)器發(fā)送FIN應(yīng)該放在第三次揮手中舔亭。
這樣瀏覽器需要返回ACK表示同意些膨,也就是第四次揮手蟀俊。