當你在瀏覽器的地址欄輸入你要訪問的域名,然后按Enter后,瀏覽器在發起http請求前,瀏覽器首先需要解析這個域名,找到這個域名對應的ip地址。這個過程就是dns解析,解析過程分為以下幾步。
1)瀏覽器先查詢hosts文件是否有與這個域名對應的ip地址,如果有則直接向這個ip地址發起http請求。查詢不到就進行第二步。
2)瀏覽器向本地DNS服務器發出解析域名的DNS解析報文,本地DNS服務器收到請求后,先查詢緩存,判斷是否有對應的記錄,如果有就返回這條記錄,查詢不到就進行第三步。
3)本地DNS服務器沒有在緩存中查詢到對應的記錄,本地DNS服務器於是就向DNS根服務器發起查詢請求。DNS根服務器收到請求通過查詢得到頂級域名對應的頂級域服務器的ip地址,然后向本地DNS服務器發送一條應答報文。
4)本地DNS服務器收到應答報文后,得到頂級域服務器的地址,然后向該地址發送請求解析域名的DNS請求報文。
5)頂級域名服務器在收到請求后先查詢緩存是否有對應的記錄,如果有就返回對應的記錄,如果沒有找到就查詢域名對應的二級域服務器地址,然后將域名對應的二級域服務器地址返回給本地DNS服務器。
6)本地DNS服務器收到應答報文后,得到二級域服務器的地址,然后向該地址發送請求解析域名的DNS請求報文。
7)二級域服務器在收到請求后先查詢緩存是否有對應的記錄,如果有就返回對應的記錄,如果沒有找到就查詢域名對應的三級域服務器地址,然后將域名對應的三級域服務器地址返回給本地DNS服務器。
8)本地DNS服務器收到應答報文后,得到三級域服務器的地址,然后向該地址發送請求解析域名的DNS請求報文。
9)三級域服務器在收到請求后在DNS區域數據庫中查詢對應的記錄,返回對應的記錄
10)本地名稱服務器在收到三級域服務器后,向用戶返回一條DNS應答報文,並將這條記錄保存在緩存中
11)瀏覽器就得到了域名對應的ip地址,然后就可以發起http請求了