乙個使用者在位址列輸入例如www.baidu.com,dns解析大概有10個過程:
dns是internet上作為網域名稱和ip位址相互對映的乙個分布式資料庫,是使用者更方便的訪問internet,而不用去記住那些ip位址
①瀏覽器先檢查自身快取中有沒有這個網域名稱對應的ip位址,如果有,解析結束。
②如果瀏覽器快取中沒有命中,瀏覽器會檢查自身作業系統快取中有沒有相應的已經解析的過程。而且作業系統也有乙個網域名稱解析的過程。windows -> c盤 -> windows -> system32 -> drivers -> etc -> hosts(如果在這裡設定了乙個網域名稱對應的ip位址,那麼瀏覽器就會首先使用這個ip位址,所以這種作業系統級別的網域名稱解析通常會被黑客利用,通過修改你hosts檔案裡的內容把網域名稱解析到他指定的ip位址上,造成所謂的網域名稱劫持,所以將hosts檔案設定成了唯讀模式,防止被惡意篡改。)
③如果還沒有命中網域名稱,這時才會真正的請求本地網域名稱伺服器(ldns)來解析這個網域名稱,這台服務一般在你城市的某個角落,距離不會很遠,並且他的效能很好,一般都會快取網域名稱解析結果,大概80%的網域名稱解析到這裡都結束了。
④如果本地網域名稱伺服器還是沒有命中,就直接跳到root server網域名稱伺服器請求解析
⑤root server伺服器返回給ldns乙個所查詢域的主網域名稱伺服器位址(gtld server)
⑥這時ldns再傳送請求給上一步返回的gtld
⑦接受請求的gtld查詢並返回這個網域名稱對應的name server的位址,這個name server就是**註冊的網域名稱伺服器
⑧name server根據對映關係表找到目標ip,返回給ldns
⑨ldns快取這個網域名稱和對應的ip
⑩ldns把解析的結果返回給使用者,使用者根據ttl值(一條網域名稱解析記錄在dns伺服器的存留時間)快取到本地系統快取中,網域名稱解析過程到此結束。
瀏覽器如何通過網域名稱去查詢url對應的ip位址?
1、瀏覽器快取:瀏覽器會按照一定的頻率快取dns記錄。
2、作業系統快取:如果瀏覽器快取中找不到需要的dns記錄,那就去作業系統中找。
3、路由快取:路由器也有dns快取。
4、isp的dns伺服器:isp是網際網路服務提供商(internet service provider)的簡稱,isp有專門的dns伺服器應對dns查詢請求。
5、根伺服器:isp的dns伺服器還找不到的話,它就會向根伺服器發出請求,進行遞迴查詢(dns伺服器先問根網域名稱伺服器.com網域名稱伺服器的ip位址,然後再問.com網域名稱伺服器,依次類推)。
了解了dns的過程,如果每次都經過這麼多步驟,是否太耗時間?如何減少該過程的步驟呢?
那就需要dns優化了
dns快取
dns存在著多級快取,從離瀏覽器的距離排序的話,有以下幾種: 瀏覽器快取,系統快取,路由器快取,ips伺服器快取,根網域名稱伺服器快取,頂級網域名稱伺服器快取,主網域名稱伺服器快取。
dns負載均衡
網際網路使用者巨大的今天,假如億萬請求請求的資源都位於同一臺機器上面,那麼這台機器隨時可能會蹦掉。處理辦法就是用dns負載均衡技術,它的原理是在dns伺服器中為同乙個主機名配置多個ip位址,在應答dns查詢時,dns伺服器對每個查詢將以dns檔案中主機記錄的ip位址按順序返回不同的解析結果,將客戶端的訪問引導到不同的機器上去,使得不同的客戶端訪問不同的伺服器,從而達到負載均衡的目的。例如可以根據每台機器的負載量,該機器離使用者地理位置的距離等等。
大家耳熟能詳的cdn(content delivery network)就是利用dns的重定向技術,dns伺服器會返回乙個跟使用者最接近的點的ip位址給使用者,cdn節點的伺服器負責響應使用者的請求,提供所需的內容。
DNS網域名稱解析過程
1.應用發起基於網域名稱的請求後,linux先查詢本地dns cache。2.本地dns cache命中 cache中有該網域名稱的紀錄項 則返回目標ip位址,否則將網域名稱解析請求傳送給本地網域名稱解析伺服器 dns server 3.網域名稱伺服器 dns server 收到請求後,先查詢本地快...
DNS網域名稱解析過程
1 瀏覽器會檢查快取中有沒有儲存過這個ip位址 如果當前快取中有此ip位址則本次解析到此結束,可以直接訪問ip位址,否則進行下一步。2 檢查作業系統快取 如果系統快取了此ip對映。本次解析到此結束,否則進行下一步 3 檢查ldns快取 本地網域名稱伺服器一般為網路服務提供商提供,比如電信聯通或者校園...
DNS網域名稱解析過程
dns,就是domain name system的縮寫,翻譯過來就是網域名稱系統,是網際網路上作為網域名稱和ip位址相互對映的乙個分布式資料庫。dns能夠使使用者更方便的訪問網際網路,而不用去記住能夠被機器直接讀取的ip數串。通過網域名稱,最終得到該網域名稱對應的ip位址的過程叫做網域名稱解析 或主...