DNS:域名系統(tǒng)扎运,互聯(lián)網(wǎng)上作為域名和ip地址相互映射的分布式數(shù)據(jù)庫(kù)
DNS域名解析:通過(guò)域名最終得到該域名對(duì)應(yīng)的ip地址(主機(jī)地址)的過(guò)程叫做域名解析
基本概念
1如庭、根域
www.baidu.com. 最后的一個(gè)點(diǎn),根域服務(wù)器具有13個(gè)ip地址,借助任播技術(shù)在全球范圍內(nèi)設(shè)立這些ip的鏡像站點(diǎn)
2、域的劃分
根域下來(lái)為頂級(jí)域或者一級(jí)域柴信,根據(jù).com,.net行業(yè)性質(zhì)劃分或者根據(jù).cn宽气,.jp國(guó)家劃分
每個(gè)域都會(huì)有域名服務(wù)器
baidu.com即為一個(gè)頂級(jí)域名随常,www.baidu.com為baidu.com域里一個(gè)叫做www的主機(jī)。
一級(jí)域之后還有二級(jí)域萄涯,三級(jí)域绪氛。比如a.www.baidu.com,在這個(gè)網(wǎng)址中窃判,www.baidu.com變成了一個(gè)二級(jí)域而不是一臺(tái)主機(jī)钞楼,主機(jī)名時(shí)a。
3袄琳、域名服務(wù)器
能夠提供域名解析的服務(wù)器
域名解析過(guò)程:
1、一臺(tái)計(jì)算機(jī)通過(guò)ISP接入互聯(lián)網(wǎng)燃乍,ISP會(huì)分配給計(jì)算機(jī)一個(gè)DNS服務(wù)器(非權(quán)威服務(wù)器唆樊,相當(dāng)于代理的dns服務(wù)器,用來(lái)迭代權(quán)威服務(wù)器返回的應(yīng)答刻蟹,把最終查到的ip返回)
2逗旁、在瀏覽器中輸入域名,搜索瀏覽器緩存,查看本地hosts文件是否有這個(gè)域名的對(duì)應(yīng)規(guī)則片效,沒(méi)有則發(fā)起域名解析红伦。
3、首先發(fā)起DNS請(qǐng)求到本地DNS服務(wù)器淀衣,本地DNS服務(wù)器查找緩存記錄昙读,若有直接返回,此時(shí)拿到的ip地址會(huì)被標(biāo)記為非權(quán)威服務(wù)器的應(yīng)答膨桥。
4蛮浑、若沒(méi)有則從BIND配置文件hosts中讀取根域的地址,向其中一臺(tái)發(fā)送請(qǐng)求(UDP協(xié)議)只嚣。
5沮稚、根域服務(wù)器收到請(qǐng)求后,就知道它是哪個(gè)頂級(jí)域名下(如com.)册舞,就會(huì)發(fā)送對(duì)應(yīng)域下的NS記錄給本地DNS服務(wù)器蕴掏。(13臺(tái)主機(jī)名和ip)
6、本地DNS服務(wù)器向其中一臺(tái)發(fā)起請(qǐng)求调鲸,根域服務(wù)器返回一級(jí)域的NS囚似,返回給本地DNS服務(wù)器
7、本地DNS服務(wù)器再向?qū)?yīng)的域名的解析服務(wù)器發(fā)出請(qǐng)求线得,如果沒(méi)有二饶唤、三級(jí)域,就會(huì)收到一個(gè)域名和ip的對(duì)應(yīng)關(guān)系贯钩。
8募狂、若還有二、三級(jí)域則依次向下查找角雷,直到查到主機(jī)(www)祸穷,返回ip給本地DNS服務(wù)器。
9勺三、本地DNS服務(wù)器將ip地址返回給客戶端雷滚,并保存在高速緩存中,以備下次別的用戶查詢時(shí)吗坚,可以直接返回結(jié)果祈远,加快網(wǎng)絡(luò)訪問(wèn)。
優(yōu)化DNS解析:
減少DNS解析時(shí)間和次數(shù)是個(gè)很好的優(yōu)化方式
DNS Prefetching是具有此屬性的域名不需要用戶點(diǎn)擊鏈接就在后臺(tái)解析商源,而域名解析和內(nèi)容載入是串行的網(wǎng)絡(luò)操作车份,所以這個(gè)方式能減少用戶的等待時(shí)間,提升用戶體驗(yàn)
?
1牡彻、前端dns預(yù)解析
方法:
使用meta信息告訴瀏覽器當(dāng)前頁(yè)面要做DNS預(yù)解析:<meta http-equiv="x-dns-prefetch-control" content="on" >
在頁(yè)面header中使用link標(biāo)簽來(lái)強(qiáng)制對(duì)DNS預(yù)解析: <link rel="dns-prefetch" />
?
多頁(yè)面重復(fù)DNS預(yù)解析會(huì)增加重復(fù)DNS查詢次數(shù)
2扫沼、域名解析的TTL時(shí)間設(shè)置長(zhǎng)一點(diǎn),但可能導(dǎo)致精度不準(zhǔn)
3、DNS域名解析拆分為多個(gè)域名增加并行下載量
將js缎除,css严就,image分放在不同域名下,瀏覽器可以同時(shí)向這些域名發(fā)送DNS域名解析請(qǐng)求器罐,一定程度上減少DNS時(shí)間
實(shí)際應(yīng)用中使用全站CDN或靜態(tài)文件CDN梢为,即可以實(shí)現(xiàn)上訴效果
4、選擇可靠的DNS服務(wù)技矮,假如網(wǎng)站拆了多個(gè)二級(jí)域名抖誉,可以使用CNAME(別名),設(shè)置好TTL(time-to-live)時(shí)間衰倦。以保證第一次訪問(wèn)可以從運(yùn)營(yíng)商的DNS緩存中拿到