在瀏覽器輸入網(wǎng)址,按下回車后,首先瀏覽器會做域名解析,獲取目標主機的ip
地址。主要有以下幾個步驟:
- 瀏覽器搜索自身的
DNS
緩存,如果沒找到,轉2; - 搜索操作系統(tǒng)自身
DNS
緩存,如果沒找到,轉3; - 讀取本地的
hosts
文件,查找有無域名對應解析,如果沒找到,轉4; - 瀏覽器發(fā)起一個
DNS
的一個系統(tǒng)調用:向本地域名解析服務器(由寬帶服務商提供),發(fā)起一個域名解析請求。
- 運營商的
DNS
服務器首先查看自身緩有無對應條目(沒有過期,則解析成功),如果不成功; - 寬帶運營商代替瀏覽器發(fā)起一個迭代
DNS
解析的請求
以www.imooc.com的IP地址為例:
DNS迭代解析
經(jīng)過八個步驟,最終查詢到域名的IP地址,并將其返回給瀏覽器;
- 瀏覽器獲得域名對應的IP地址后,發(fā)起與服務器的TCP連接請求(完成“三次握手”);
- 建立TCP連接后,由瀏覽器向服務器發(fā)送請求;
- 服務器接收客戶端的請求,根據(jù)路徑參數(shù),將經(jīng)過后臺處理的數(shù)據(jù),發(fā)送回瀏覽器;
- 瀏覽器獲得完整的HTML頁面代碼,在解析、渲染頁面時,其中的JS、CSS和圖片等靜態(tài)資源也是一個個HTTP請求,經(jīng)過前面7個步驟獲取;
- 瀏覽器根據(jù)獲取到的資源對頁面進行最后的渲染,呈現(xiàn)給用戶。