HttpDns 原理是什麼

2021-08-28 22:41:49 字數 2406 閱讀 1338

張松然 作者

張松然,京東** pop平台系統架構師。對構建高效能,高可用的大規模分布系統有豐富的開發經驗,有多年nio領域的設計、開發經驗,對http、tcp長連線技術有深入研究與領悟。

什麼是 dns

dns(domain name system,網域名稱系統),dns 服務用於在網路請求時,將網域名稱轉為 ip 位址。能夠使使用者更方便的訪問網際網路,而不用去記住能夠被機器直接讀取的 ip 數串。

傳統的基於 udp 協議的公共 dns 服務極易發生 dns 劫持,從而造成安全問題。

dns 網域名稱系統結構

root 網域名稱:dns 網域名稱使用時,規定由尾部句號來指定名稱位於根或更高階別的域層次結構

top level 頂級網域名稱:用來指示某個國家、地區或組織使用的名稱的型別名稱。如 .com

second level 網域名稱:個人或組織在 internet 上使用的註冊名稱。如 linkedkeeper.com

third level 網域名稱:已註冊的二級網域名稱派生的網域名稱。如 misc.linkedkeeper.com

dns 解析過程

1. 瀏覽器中輸入 www.linkedkeeper.com,發出解析請求。

2. 本機的網域名稱解析器 resolver 程式查詢本地快取和 host 檔案中是否為網域名稱的對映關係,如果有則呼叫這個 ip 位址對映,完成解析。

3. 如果 hosts 與本地解析器快取都沒有相應的**對映關係,則本地解析器會向 tcp/ip 引數中設定的首選 dns 伺服器(我們叫它 local dns 伺服器)發起乙個遞迴的查詢請求。

4. 伺服器收到查詢時,如果要查詢的網域名稱由本機負責解析,則返回解析結果給客戶機,完成網域名稱解析,此解析具有權威性。如果要查詢的網域名稱,不由 local dns 伺服器解析,但該伺服器已快取了此**對映關係,則呼叫這個 ip 位址對映,完成網域名稱解析,此解析不具有權威性。

5. 如果 local dns 伺服器本地區域檔案與快取解析都失效,則根據 local dns 伺服器的設定(是否遞迴)進行查詢,如果未用開啟模式,local dns 就把請求發至13臺 root dns。如果用的是遞迴模式,此 dns 伺服器就會把請求**至上一級 dns 伺服器,由上一級伺服器進行解析,上一級伺服器如果不能解析,或找根 dns 或把轉請求轉至上上級,以此迴圈。

6. root dns 伺服器收到請求後會判斷這個網域名稱是誰來授權管理,並會返回乙個負責該頂級網域名稱伺服器的乙個 ip。

7. local dns 伺服器收到 ip 資訊後,將會聯絡負責 .com 域的這台伺服器。

9. 當 local dns 伺服器收到這個位址後,就會找 linkedkeeper.com 域伺服器,10、11重複上面的動作,進行查詢。

10. 最後 www.linkedkeeper.com 返回需要解析的網域名稱的 ip 位址給 local dns 伺服器。

11. local dns 伺服器快取這個解析結果(同時也會快取,6、8、10返回的結果)。

12. local dns 伺服器同時將結果返回給本機網域名稱解析器。

13. 本機快取解析結果。

14. 本機解析器將結果返回給瀏覽器。

15. 瀏覽器通過返回的 ip 位址發起請求。

遞迴查詢和迭代查詢

由此可見,客戶端到 local dns 伺服器,local dns 與上級 dns 伺服器之間屬於遞迴查詢;dns 伺服器與根 dns 伺服器之前屬於迭代查詢。

實際環境中,因為採用遞迴模式會導致 dns 伺服器流量很大,所以現在大多數的 dns 都是迭代模式。

結合 wireshark 分析 dns 協議

httpdns 是什麼

httpdns 利用 http 協議與 dns 伺服器互動,代替了傳統的基於 udp 協議的 dns 互動,繞開了運營商的 local dns,有效防止了網域名稱劫持,提高網域名稱解析效率。另外,由於 dns 伺服器端獲取的是真實客戶端 ip 而非 local dns 的 ip,能夠精確定位客戶端地理位置、運營商資訊,從而有效改進排程精確性。

httpdns 主要解決的問題

如何進行改造支援 httpdns

目前,國內有一部分廠商已經提供了這個解析服務,可以直接使用第三方服務。目前,提供 httpdns 解析服務的有:阿里雲httpdns

阿里雲的 httpdns 服務的 api 比較標準,直接發乙個 get 請求,帶上請求引數,返回結果以 json 返回。

請求成功時,返回結果如下:

在移動端,將由 httpdns 獲得的 ip 位址在原有 url 的基礎上,將網域名稱替換為 ip,然後用新的 url 發起 http 請求。

工作原理是什麼 超濾機工作原理是什麼

超濾機即使用超濾技術對水進行淨化處理的裝置。與其它淨水裝置的區別在於它的裝置中使用有超濾膜。其工作原理是採用一種加壓膜分離技術,即在一定的壓力下,使小分子溶質和溶劑穿過一定孔徑的特製的薄膜,而使大分子溶質不能透過,留在膜的一邊,從而使大分子物質得到了部分的純化。超濾根據所加的操作壓力和所用膜的平均孔...

工作原理是什麼 馬桶水箱工作原理是什麼

馬桶水箱工作原理是什麼 它主要是利用排水閥來將裡面的水放出,然後當裡面的水被排完後,水塞便會落下將出水口給堵住。而浮球便會下落將進水閥給拉起,這時水箱就開始注水了,水面在上公升時,浮球也會隨之公升高,當它到達一定高度時,水塞便會將進水口堵住。馬桶選購注意事項 1 挑選馬桶時要注意看它是否屬於哪種陶瓷...

反射原理是什麼

以前,假設我們要不借助任何類庫直接解析json協議的東西,比如,並且我們需要將他們賦給乙個與之對應的實體類。那麼我們需要寫出如下的 來解析 這只是一段偽 while str.length 0 else if name b else 從上面 中,可以知道,當要為乙個實體類賦值和解析的屬性比較少的時候,...