您好,登錄后才能下訂單哦!
這篇文章主要介紹“瀏覽器緩存,DNS,CDN及域名解析的過程是怎樣的”,在日常操作中,相信很多人在瀏覽器緩存,DNS,CDN及域名解析的過程是怎樣的問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”瀏覽器緩存,DNS,CDN及域名解析的過程是怎樣的”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
當我們使用Ctrl+F5組合鍵刷新一個頁面時,在HTTP的請求頭中會增加一些請求頭,
它告訴服務端我們要獲取最新的數(shù)據(jù)而不是緩存。
這個HTTP Head字段用于指定所有緩存機制在整個請求/響應鏈中必須服從的指令。
可選值 | 說明 |
---|---|
Public | 所有內(nèi)容都將被緩存,在響應頭中設置 |
Private | 內(nèi)容只緩存到私有緩存中,在響應頭中設置 |
no-cache | 所有內(nèi)容都不會被緩存,在請求頭和響應頭中設置 |
no-store | 所有內(nèi)容都不會被緩存到緩存或Internet臨時文件中,在響應頭中設置 |
must-revalidation/proxy-revalidation | 如果緩存的內(nèi)容失敗,請求必須發(fā)送到服務器/代理以進行重新驗證,在請求頭中設置 |
max-age=xxx | 緩存的內(nèi)容將在xxx秒后失效,這個選項只在HTTP 1.1中可用,和Last-Modified一起使用時優(yōu)先級較高,在響應頭中設置 |
Cache-Control請求字段被各個瀏覽器支持的較好,而且它的優(yōu)先級也比較高,
它和其他一些請求字段(如Expires)同時出現(xiàn)時,Cache-Control會覆蓋掉其他字段。
Expires通常的使用格式是Expires: Sat, 25 Feb 2012 12:22:17 GMT
,
后面跟著一個日期和時間,超過這個時間后,緩存的內(nèi)容將失效。
Last-Modified字段一般用于表示一個服務器上的資源的最后修改時間,
資源可以是靜態(tài)(靜態(tài)內(nèi)容自動加上Last-Modified字段),
或者動態(tài)的內(nèi)容(如Servlet提供了一個getLastModified方法,用于檢查某個動態(tài)內(nèi)容是否已經(jīng)更新),
通過這個最后修改時間可以判斷當前請求的資源是否是最新的。
一般服務器端在響應頭中返回一個Last-Modified子彈,告訴瀏覽器這個頁面的最后修改時間,
如Last-Modified: Sat, 25 Feb 2012 12:55:04 GMT
,瀏覽器再次請求時,
在請求頭中增加一個If-Modified-Since: Sat, 25 Feb 2012 12:55:04 GMT
字段,
詢問當前緩存的頁面是否是最新的,如果是最新的就返回304狀態(tài)碼,告訴瀏覽器是最新的,服務器也不會傳輸新的數(shù)據(jù)。
與Last-Modified字段有類似功能的還有一個Etag字段,
這個字段的作用是讓服務器給每個頁面分配一個唯一的編號,
然后通過這個編號來區(qū)分當前這個頁面是否最新的。
這種方式比使用Last-Modified更加靈活,但是在后端的Web服務器有多臺時比較難處理,
因為每個Web服務器都要記住網(wǎng)站的所有資源,
否則瀏覽器返回這個編號就沒有意義了。
當一個用戶在瀏覽器中輸入www.kemok4.com
時,DNS解析將會有將近10個步驟,這個過程大體描述如下。
瀏覽器會檢查緩存中有沒有這個域名對應的解析過的IP地址,
如果緩存中有,這個解析過程就將結束。
瀏覽器緩存域名也是有限制的,不僅瀏覽器緩存大小有限制,而且緩存的時間也有限制,
通常情況下為幾分鐘到幾小時不等,
域名被緩存的時間限制可以通過TTL屬性來設置。
如果用戶的瀏覽器緩存中沒有,瀏覽器會查找操作系統(tǒng)緩存中是否有這個域名對應的DNS解析結果。
其實操作系統(tǒng)也會有一個域名解析的過程,
在Windows中可以通過C:\Windows\System32\drivers\etc\hosts
文件來設置,
你可以將任何域名解析到任何能夠訪問的IP地址。
在Linux中這個配置文件是/etc/hosts
,
當解析到這個配置文件中的某個域名時,操作系統(tǒng)會在緩存中緩存這個解析結果,
緩存的時間同樣是受這個域名的失效時間和緩存的空間大小控制的。
如果在本機中仍然無法完成域名的解析,就會真正請求域名服務器來解析這個域名了。
在我們的網(wǎng)絡配置中都會有“DNS服務器地址”這一項,
操作系統(tǒng)會把這個域名設置為本地區(qū)的域名服務器(LNDS)。
這個DNS通常都提供給你本地互聯(lián)網(wǎng)接入的一個DNS解析服務,
例如,你是在學校接入互聯(lián)網(wǎng),那么你的DNS服務器肯定在你的學校,
如果你是在一個小區(qū)接入互聯(lián)網(wǎng),那這個DNS就是提供給你接入互聯(lián)網(wǎng)的應用提供商,即電信或者聯(lián)通。
這個專門的域名解析服務器性能都會很好,它們一般都會緩存域名解析結果,
當然緩存時間是受域名的失效時間控制的。
如果LDNS仍然沒有命中,就直接到Root Server域名服務器請求解析。
根域名服務器返回給本地域名服務器一個所查詢的主域名服務器(gTLD Server)地址。
gTLD是國際頂級域名服務器,如.com
,.cn
,.org
等,全球只有13臺左右。
本地域名服務器(Local DNS Server)再向上一步返回的gTLD服務器發(fā)送請求。
接受請求的gTLD服務器查找并返回此域名對應的Name Server域名服務器的地址,
這個Name Server通常就是你注冊的域名服務器。
例如,你在某個域名服務器提供商申請的域名,那么這個域名解析任務就由這個域名提供商的服務器來完成。
Name Server域名服務器會查詢存儲在域名和IP的映射關系表,
在正常情況下會根據(jù)域名得到目標IP記錄,連同一個TTL值返回給DNS Server域名服務器。
返回該域名對應的IP和TTL值,Local DNS Server會緩存這個域名和IP的對應關系,
緩存的時間由TTL值控制。
把解析的結果返回給用戶,用戶根據(jù)TTL值緩存在本地系統(tǒng)緩存中,域名解析過程結束。
注:在實際的DNS解析過程中,可能還不止這10個步驟,
如Name Server也可能有很多級,或者有一個GTM來負載均衡控制,
這都有可能會影響域名解析的過程。
域名解析記錄主要分為A記錄,MX記錄,CNAME記錄,NS記錄,和TXT記錄。
A代表Address,用來指定域名對應的IP地址,
A記錄可以將多個域名解析到一個IP地址,但是不能將一個域名解析到多個IP地址。
MX表示Mail Exchange,就是可以將某個域名下的郵件服務器指向自己的Mail Server,
DNS會將郵件發(fā)送到MX記錄的服務器,而正常通過Web請求的話,仍然解析到A記錄的IP地址。
CNAME全稱為Canonial Name(別名解析)。
所謂別名解析就是可以為一個域名設置一個或者多個別名。
NS記錄,為某個域名指定DNS解析服務器,也就是這個域名由指定的IP地址的DNS服務器去解析。
為某個主機名或域名設置說明。
CDN也就是內(nèi)容分布網(wǎng)絡(Content Delivery Network),它是構筑在現(xiàn)有Internet上的一種先進的流量分配網(wǎng)絡。
其目的是通過在現(xiàn)有的Internet中增加一層新的網(wǎng)絡架構,
將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的網(wǎng)絡“邊緣”,使用戶可以就近取得所需的內(nèi)容,
提高用戶訪問網(wǎng)站的響應速度。
目前CDN都以緩存網(wǎng)站中的靜態(tài)數(shù)據(jù)為主,如CSS,JS,圖片和靜態(tài)頁面等數(shù)據(jù)。
用戶在先從主站服務器請求到動態(tài)內(nèi)容后,再從CDN上下載這些靜態(tài)資源,從而加速網(wǎng)頁數(shù)據(jù)內(nèi)容的下載速度。
一個用戶訪問某個靜態(tài)文件(如CSS文件),這個靜態(tài)文件的域名假如是cdn.jb51.net
,
那么首先要向Local DNS服務器發(fā)起請求,
一般經(jīng)過迭代解析后回到這個域名的注冊服務器去解析,一般每個公司都會有一個DNS解析服務器。
這時這個DNS解析服務器通常會把它重新CNAME解析到另一個另外一個域名,
而這個域名最終會被指向CDN全局中的DNS負載均衡服務器,再由這個GTM來最終分配是哪個地方的訪問用戶,
返回給離這個訪問用戶最近的CDN節(jié)點。
拿到DNS解析結果,用戶就直接去這個CDN節(jié)點訪問這個靜態(tài)資源文件了,
如果這個節(jié)點中所請求的文件不存在,就會再回到源站去獲取這個文件,然后再返回給用戶。
到此,關于“瀏覽器緩存,DNS,CDN及域名解析的過程是怎樣的”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。