DNS域名解析流程

image.png

上圖中分 8 個步驟介紹了域名解析的流程,但在此之前會先檢查本機的緩存配置+ hosts 解析,然后才真正執(zhí)行上圖的流程:

瀏覽器緩存檢查

瀏覽器會首先搜索瀏覽器自身的 DNS 緩存,緩存時間比較短,大概只有1分鐘,且只能容納 1000 條緩存,看自身的緩存中是否有對應(yīng)的條目,而且沒有過期,如果有且沒有過期則解析到此結(jié)束。

操作系統(tǒng)緩存檢查 + hosts 解析

如果瀏覽器的緩存里沒有找到對應(yīng)的條目,操作系統(tǒng)也會有一個域名解析的過程,那么瀏覽器先搜索操作系統(tǒng)的 DNS 緩存中是否有這個域名對應(yīng)的解析結(jié)果,如果找到且沒有過期則停止搜索,解析到此結(jié)束。

在 Linux 中可以通過 /etc/hosts 文件來設(shè)置,可以將任何域名解析到任何能夠訪問的IP 地址。如果在這里指定了一個域名對應(yīng)的 IP 地址,那么瀏覽器會首先使用這個 IP地址。當解析到這個配置文件中的某個域名時,操作系統(tǒng)會在緩存中緩存這個解析結(jié)果,緩存的時間同樣是受這個域名的失效時間和緩存的空間大小控制的。

第一步

客戶端通過瀏覽器訪問域名為 www.baidu.com (http://www.baidu.com) 的網(wǎng)站,發(fā)起查詢該域名的 IP 地址的 DNS 請求。該請求發(fā)送到了本地 DNS 服務(wù)器上。本地 DNS 服務(wù)器會首先查詢它的緩存記錄,如果緩存中有此條記錄,就可以直接返回結(jié)果。如果沒有,本地 DNS 服務(wù)器還要向 DNS 根服務(wù)器進行查詢。

第二步

本地 DNS 服務(wù)器向根服務(wù)器發(fā)送 DNS 請求,請求域名為 www.baidu.com (http://www.baidu.com) 的 IP 地址。

第三步

根服務(wù)器經(jīng)過查詢,沒有記錄該域名及 IP 地址的對應(yīng)關(guān)系。但是會告訴本地 DNS 服務(wù)器,可以到域名服務(wù)器上繼續(xù)查詢,并給出域名服務(wù)器的地址(.com 服務(wù)器)。

第四步

本地 DNS 服務(wù)器向 .com 服務(wù)器發(fā)送 DNS 請求,請求域名 www.baidu.com (http://www.baidu.com) 的 IP 地址。

第五步

com 服務(wù)器收到請求后,不會直接返回域名和 IP 地址的對應(yīng)關(guān)系,而是告訴本地DNS 服務(wù)器,該域名可以在 baidu.com 域名服務(wù)器上進行解析獲取 IP 地址,并告訴 baidu.com 域名服務(wù)器的地址。

第六步

本地 DNS 服務(wù)器向 baidu.com 域名服務(wù)器發(fā)送 DNS 請求,請求域名 www.baidu.com (http://www.baidu.com) 的 IP 地址。

第七步

baidu.com 服務(wù)器收到請求后,在自己的緩存表中發(fā)現(xiàn)了該域名和 IP 地址的對應(yīng)關(guān)系,并將 IP 地址返回給本地 DNS 服務(wù)器。

第八步

本地 DNS 服務(wù)器將獲取到與域名對應(yīng)的 IP 地址返回給客戶端,并且將域名和 IP 地址的對應(yīng)關(guān)系保存在緩存中,以備下次別的用戶查詢時使用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容