DNS解析,流程圖如下

如圖所示,大致就是:瀏覽器輸入地址,然后瀏覽器這個進程去調(diào)操作系統(tǒng)某個庫里的gethostbyname函數(shù)(例如,linux GNU glibc標(biāo)準(zhǔn)庫的gethostbyname函數(shù)),然后呢這個函數(shù)通過網(wǎng)卡給DNS服務(wù)器發(fā)UDP請求,接收結(jié)果,然后將結(jié)果給返回給瀏覽器。
這張圖其實已經(jīng)講明白大致的流程,但是細節(jié)上可能有些差異。
例如
- (1)我們在用chrome瀏覽器的時候,其實會先去瀏覽器的dns緩存里頭查詢,dns緩存中沒有,再去調(diào)用gethostbyname函數(shù)
- (2)gethostbyname函數(shù)在試圖進行DNS解析之前首先檢查域名是否在本地 Hosts 里,如果沒找到再去DNS服務(wù)器上查