標籤:http dns
一、訪問網站的基本流程
第一步:用戶端使用者在瀏覽器輸入www.51cto.com網站,斷行符號後,系統首先會尋找系統本地的DNS緩衝及hosts檔案資訊,確定是否存在www.51cto.com餘名對應的IP解析記錄,如果有就直接擷取IP地址,然後去訪問這個IP地址對應餘名www.51cto.com的伺服器。一般第一次請求的時候,DNS緩衝是沒有解析記錄的,而hosts躲在內部臨時測試時使用。
第二步:如果用戶端本地DNS緩衝及hosts檔案沒有www.51cto.com餘名對應的解析記錄,那麼,系統會把瀏覽器的解析請求發送給用戶端本地設定的DNS伺服器位址(稱為LDNS)解析,如果LDNS伺服器的本機快取有對應的解析記錄就會直接返回IP地址給用戶端;如果沒有,則LDNS會負責繼續請求其他的DNS伺服器。
第三步:LDNS從DNS系統的根開始請求對www.51cto.com餘名的解析,並針對各個層級的DNS伺服器系統進行一系列的尋找,最終會尋找到51cto.com網域名稱對應的授權DNS伺服器,而這個授權DNS伺服器正式企業購買網域名稱時用於管理網域名稱解析的伺服器,這個授權伺服器會有www.51cto.com對應的IP解析記錄。如果此時沒有,就表示企業的網域名稱管理員沒有為www.51cto.com網域名稱做解析設定,即網站還沒有架設好。
第四步:51cto.com餘名的授權DNS伺服器會把www.51cto.com對應的最終IP解析記錄發給LDNS。
第五步:LDNS把來自授權DNS伺服器的www.51cto.com對應的IP解析記錄發給用戶端瀏覽器,並且它會把該網域名稱和IP地址的對應解析緩衝起來,以便下一次更快的返回相同解析請求的記錄,這些緩衝記錄在指定的時間(DNS TTL)內不會到期。
第六步:用戶端瀏覽器擷取了www.51cto.com對應的IP地址,接下來,瀏覽器會請求獲得IP地址對應的網站伺服器,網站伺服器接收到客戶的請求並響應處理(此處的處理可能是數百台叢集的伺服器系統,也可能是一台雲主機),將客戶請求的內容返回給用戶端瀏覽器。至此,一次訪問瀏覽網頁的完整過程也就完成了。
附:
(1)查看windows用戶端的本機快取記錄:
ifconfig /displaydns
(2)清楚Windows用戶端本機快取DNS記錄:
ifconfig /flushdns
(3)Windows系統下的hosts網域名稱解析記錄位置:
C:\Windows\System32\drivers\etc\hosts
二、DNS系統解析基本流程
DNS簡介
A記錄----把餘名解析為對應的IP地址。
CNAME別名記錄--別名解析功能常備CDN加速服務商應用
MX郵件記錄--MX記錄功能,在購買或搭建郵件伺服器時會被用到
PTR記錄--反向解析,即把IP位址解析為對應網域名稱,和A記錄的解析相反,此功能在郵件服務業務中會用
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/88/56/wKiom1fvvOzj2WqVAACIHoN53c0064.jpg-wh_500x0-wm_3-wmp_4-s_1324839642.jpg" title="123.jpg" alt="wKiom1fvvOzj2WqVAACIHoN53c0064.jpg-wh_50" />
DNS解析流程圖
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/88/56/wKiom1fvv2niTTGgAAFPQz6r41k630.jpg-wh_500x0-wm_3-wmp_4-s_2563572070.jpg" title="123.jpg" alt="wKiom1fvv2niTTGgAAFPQz6r41k630.jpg-wh_50" />
通過dig命令來實踐理解DNS解析流程
[[email protected] ~]# dig +trace www.51cto.com; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> +trace www.51cto.com;; global options: +cmd. 47942 IN NS j.root-servers.net.. 47942 IN NS f.root-servers.net.. 47942 IN NS b.root-servers.net.. 47942 IN NS h.root-servers.net.. 47942 IN NS e.root-servers.net.. 47942 IN NS g.root-servers.net.. 47942 IN NS k.root-servers.net.. 47942 IN NS l.root-servers.net.. 47942 IN NS m.root-servers.net.. 47942 IN NS i.root-servers.net.. 47942 IN NS c.root-servers.net.. 47942 IN NS a.root-servers.net.. 47942 IN NS d.root-servers.net.;; Received 228 bytes from 192.168.0.1#53(192.168.0.1) in 54 ms## a-m一共13個DNS伺服器,j.root-servers.net根DNS負責了此處的解析com. 172800 IN NS a.gtld-servers.net.com. 172800 IN NS b.gtld-servers.net.com. 172800 IN NS c.gtld-servers.net.com. 172800 IN NS d.gtld-servers.net.com. 172800 IN NS e.gtld-servers.net.com. 172800 IN NS f.gtld-servers.net.com. 172800 IN NS g.gtld-servers.net.com. 172800 IN NS h.gtld-servers.net.com. 172800 IN NS i.gtld-servers.net.com. 172800 IN NS j.gtld-servers.net.com. 172800 IN NS k.gtld-servers.net.com. 172800 IN NS l.gtld-servers.net.com. 172800 IN NS m.gtld-servers.net.;; Received 491 bytes from 198.97.190.53#53(198.97.190.53) in 352 ms##解析com的一共有13個DNS伺服器,.com的a.gtld-servers.net負責了此處解析51cto.com. 172800 IN NS ns1.dnsv2.com.51cto.com. 172800 IN NS ns2.dnsv2.com.;; Received 249 bytes from 192.54.112.30#53(192.54.112.30) in 272 ms##解析 ns1.dnsv2.com負責了最終A記錄解析www.51cto.com. 600 IN CNAME web.dns.51cto.com.web.dns.51cto.com. 600 IN CNAME gf.dns.51cto.com.gf.dns.51cto.com. 600 IN A 218.11.0.9151cto.com. 86400 IN NS ns2.dnsv2.com.51cto.com. 86400 IN NS ns1.dnsv2.com.;; Received 162 bytes from 115.236.151.178#53(115.236.151.178) in 139 ms
本文出自 “Richy的營運日誌” 部落格,請務必保留此出處http://richylu.blog.51cto.com/1481674/1858308
HTTP訪問服務的相關解釋