dns網域名稱解析(需要注意的是埠是不參與網域名稱解析的)
整個過程大體描述如下,其中前兩個步驟是在本機完成的,後8個步驟涉及到真正的網域名稱解析伺服器
1、瀏覽器會檢查快取中有沒有這個網域名稱對應的解析過的ip位址,如果快取中有,這個解析過程就結束。瀏覽器快取網域名稱也是有限制的,不僅瀏覽器快取大小有限制,而且快取的時間也有限制,通常情況下為幾分鐘到幾小時不等,網域名稱被快取的時間限制可以通過ttl屬性來設定。這個快取時間太長和太短都不太好,如果時間太長,一旦網域名稱被解析到的ip有變化,會導致被客戶端快取的網域名稱無法解析到變化後的ip位址,以致該網域名稱不能正常解析,這段時間內有一部分使用者無法訪問**。如果設定時間太短,會導致使用者每次訪問**都要重新解析一次網域名稱。
2、如果使用者瀏覽器快取中沒有資料,瀏覽器會查詢作業系統快取中是否有這個網域名稱對應的dns解析結果。其實作業系統也有乙個網域名稱解析的過程,在windows中可以通過c:\windows\system32\drivers\etc\hosts檔案來設定,在linux中可以通過/etc/hosts檔案來設定,使用者可以將任何網域名稱解析到任何能夠訪問的ip位址。例如,我們在測試時可以將乙個網域名稱解析到一台測試伺服器上,這樣不用修改任何**就能測試到單獨伺服器上的**的業務邏輯是否正確。正是因為有這種本地dns解析的規程,所以有黑客就可能通過修改使用者的網域名稱來把特定的網域名稱解析到他指定的ip位址上,導致這些網域名稱被劫持。
3、前兩個過程無法解析時,就要用到我們網路配置中的"dns伺服器位址"了。作業系統會把這個網域名稱傳送給這個ldns,也就是本地區的網域名稱伺服器。這個dns通常都提供給使用者本地網際網路接入的乙個dns解析服務,例如使用者是在學校接入網際網路,那麼使用者的dns伺服器肯定在學校;如果使用者是在小區接入網際網路,那麼使用者的dns就是再提供接入網際網路的應用提供商,即電信或聯通,也就是通常說的spa,那麼這個dns通常也會在使用者所在城市的某個角落,不會很遠。windows環境下通過命令列輸入ipconfig,linux環境下通過cat /etc/resolv.conf就可以查詢配置的dns伺服器了。這個專門的網域名稱解析伺服器效能都會很好,它們一般都會快取網域名稱解析結果,當然快取時間是受到網域名稱的失效時間控制的。大約80%的網域名稱解析到這裡就結束了,所以ldns主要承擔了網域名稱的解析工作。
4、如果ldns仍然沒有命中,就直接到root server網域名稱伺服器請求解析
5、根網域名稱伺服器返回給本地網域名稱伺服器乙個所查詢的主網域名稱伺服器(gtld server)位址。gtld是國際頂級網域名稱伺服器,如.com、.cn、.org等,全球只有13臺左右
6、本地網域名稱伺服器ldns再向上一步返回的gtld伺服器傳送請求
7、接受請求的gtld伺服器查詢並返回此網域名稱對應的name server網域名稱伺服器的位址,這個name server通常就是使用者註冊的網域名稱伺服器,例如使用者在某個網域名稱服務提供商申請的網域名稱,那麼這個網域名稱解析任務就由這個網域名稱提供商的伺服器來完成
8、name server網域名稱伺服器會查詢儲存的網域名稱和ip的對映關係表,在正常情況下都根據網域名稱得到目標ip位址,連同乙個ttl值返回給dns server網域名稱伺服器
9、返回該網域名稱對應的ip和ttl值,ldns會快取這個網域名稱和ip的對應關係,快取時間由ttl值控制
10、把解析的結果返回給使用者,使用者根據ttl值快取在本地系統快取中,網域名稱解析過程結束
在實際的dns解析過程中,可能還不止這10步,如name server可能有很多級,或者有乙個gtm來負載均衡控制,這都有可能會影響網域名稱解析過程。
1) 使用者向瀏覽器提供要訪問的網域名稱;
2) 瀏覽器呼叫網域名稱解析庫對網域名稱進行解析,由於cdn對網域名稱解析過程進行了調整,所以解析函式庫一般得到的是該網域名稱對應的
cname記錄,為了得到實際ip位址,瀏覽器需要再次對獲得的cname網域名稱進行解析以得到實際的ip位址;在此過程中,使用的全域性負載均衡dns解析,如根據地理位置資訊解析對應的ip位址,使得使用者能就近訪問;
3) 此次解析得到cdn快取伺服器的ip位址,瀏覽器在得到實際的ip位址以後,向快取伺服器發出訪問請求;
4) 快取伺服器根據瀏覽器提供的要訪問的網域名稱,通過cache內部專用dns解析得到此網域名稱的實際ip位址,再由快取伺服器向此實際ip位址提交訪問請求;
5) 快取伺服器從實際ip位址得得到內容以後,一方面在本地進行儲存,以備以後使用,二方面把獲取的資料返回給客戶端,完成資料服務過程;
6) 客戶端得到由快取伺服器返回的資料以後顯示出來並完成整個瀏覽的資料請求過程。
1,建立阿里雲cdn位址
2,前往解析cname(上面填完之後會給你乙個cdn伺服器位址)
附:1.阿里雲全站cdn後台管理頁面
2.阿里雲cdn幫助文件
1,cname記錄(cname record),
cname即別名( canonical name );可以用來把乙個網域名稱解析到另乙個網域名稱。當 dns 系統在查詢 cname 左面的名稱的時候,都會轉向 cname 右面的名稱再進行查詢,一直追蹤到最後的 ptr 或 a 名稱,成功查詢後才會做出回應,否則失敗。例如,你有一台伺服器上存放了很多資料,你使用docs.example.com去訪問這些資源,但又希望通過documents.example.com也能訪問到這些資源,那麼你就可以在您的dns解析服務商新增一條cname記錄,將documents.example.com指向docs.example.com,新增該條cname記錄後,所有訪問documents.example.com的請求都會被轉到docs.example.com,獲得相同的內容。
2,cname網域名稱
接入cdn時,在阿里雲控制台新增完加速網域名稱後,您會得到乙個阿里雲cdn給您分配的cname網域名稱,(該cname網域名稱一定是*.*kunlun*.com), 您需要在您的dns解析服務商新增cname記錄,將自己的加速網域名稱指向這個*.*kunlun*.com的cname網域名稱,這樣該網域名稱所有的請求才會都將轉向阿里雲cdn的節點,達到加速效果。
3,dns網域名稱解析,
dns即domain name system,是網域名稱解析服務的意思。它在網際網路的作用是:把網域名稱轉換成為網路可以識別的ip位址。人們習慣記憶網域名稱,但機器間互相只認ip位址,網域名稱與ip位址之間是一一對應的,它們之間的轉換工作稱為網域名稱解析,網域名稱解析需要由專門的網域名稱解析伺服器來完成,整個過程是自動進行的。比如:上網時輸入的www.baidu.com會自動轉換成為220.181.112.143。
常見的dns解析服務商有:阿里雲解析,萬網解析,dnspod,新網解析,route53(aws),dyn,cloudflare等。
在這裡不在演示。
Web前端效能優化之CDN加速
1 什麼是cdn?在介紹cdn加速之前,我們先來簡單的了解一下什麼是cdn?cdn content delivery network 即內容分發網路,其基本思路是盡可能的避開網際網路上有可能影響資料傳輸速度和穩定性的瓶頸和環節,使內容傳輸更快 更穩定。通過在網路各處放置節點伺服器所構成的現有網際網路...
使用CDN加速優化前端效能
cdn content distribute network 內容分發網路的本質仍然是乙個快取,而且將資料快取在離使用者最近的地方,使使用者以最快的速度獲取資料,即所謂網路訪問的第一跳。由於cdn部署在網路運營商的機房,這些機房又是終端使用者網路的服務提供商,因此使用者請求路由的第一條就到達了cdn...
vue使用cdn加速優化專案
webpack會將所有的依賴包都生成並打包到js chunk vendors.97b0334e.js中,這樣會導致這個包的體積過大,在載入的時候會有延時。解決辦法 通過externals載入外部cdn資源 1 複製乙份main.js改名為main prod.js。注意 這個優化是專案結束時幹的事,不...