http請求優化,dns查詢

2021-10-02 15:40:16 字數 1103 閱讀 5517

第一步,外鏈先過自己的伺服器,把失效的鏈結先過濾掉,剩下那些能用的鏈結,我們還需要對其進一步的優化。

優化的原理,我們拿到外鏈的host,乙個host對應著多個ip,我們需要拿到那個網路最優的ip,如果直接拿host取訪問,因為ip會有快取的緣故,每次訪問的都是同乙個ip。我們需要拿host去做dns查詢,查詢得到ip後,直接拿ip取訪問。

這裡是查詢的具體邏輯:

協議

218.107.196.221;218.107.196.222,180

前2個為ip用分號分隔,後面乙個為ttl(過期時間)

1. dn 表示要查詢的網域名稱

2. ttl=1 表示要求 d+伺服器在響應結果中攜帶解析結果的 ttl 值

3. 返回的ttl和網域名稱解析結果用英文逗號分割。

4. http請求超時時間建議設定為10s

5. ts當前時間的時間戳

實現細節

1. 在記憶體中快取對應網域名稱的解析結果,快取規則如下:

快取更新應在以下兩種情形下進行:

1.  使用者網路狀態發生變化時: 移動網際網路的使用者的網路狀態由 3g 切 wi-fi,wi-fi 切 3g 的情況下,其接入點的網路歸屬可能會發生變化。所以在使用者的網路狀態發生變化時,需要重新向伺服器發起網域名稱解析請 求,以獲取到使用者當前網路歸屬下的最優指向。

2. 快取過期時: 當網域名稱解析的結果快取時間到期時,客戶端應該向伺服器重新發起網域名稱解析請求以獲取最新的網域名稱對應的 ip。為了減少使用者在快取過期後重新進行網域名稱解析時的等待時間,建議在 75% ttl 時就開始進行網域名稱解析。如本地快取的 ttl 為 600s,那麼在第 600*0.75=450s 時客戶端就應該開始進行網域名稱解析。

2. 發起http請求時,首先從快取中查詢是否有對應網域名稱的ip,如果沒有則之前的邏輯不變,並且觸發快取更新,如果有對應ip,則直接使用ip請求

實現策略:

1. 應用啟動時觸發請求

2.  應用程式在前台,並且網路狀態發生變化時, 觸發請求(wifi切換到資料網路,或相反)

3. http請求時,如果沒有對應網域名稱的ip,觸發請求,如果有對應ip但是ttl過期,也觸發請求(ttl最小值設為10分鐘)

4. 需要解析的網域名稱通過配置更新來獲取

HTTP請求過程(一) DNS解析過程

我們在瀏覽器輸入 後,按回車鍵,要瀏覽的內容就會顯示出來。那麼在開發者眼中,這個過程是咋樣的呢?其實,從我們輸入url到頁面顯示,大致可以分為三步 第三步 瀏覽器根據響應結果渲染輸出頁面。1.在瀏覽器中輸入www.baidu.com之後,系統會檢查本地hosts檔案是否存在網域名稱對映,如果存在,則...

前端效能優化之減少Http請求

前言 乙個頁面的 開啟速度是其 效能最直觀的體現,那麼影響其開啟速度的因素有什麼呢?此處不再展開。本文主要聊聊關於減少http請求以達到節省時間的目的 問 減少http請求為什麼能節省時間?頁面資源的請求,80 的時間耗費在http請求上,由於tcp請求是基於連線的請求,其連線與釋放需要一定的時間。...

HTTP請求 HTTP方法

http 1.1中可使用的方法 get 獲取資源 獲取伺服器的某個資源 get方法用來請求訪問已經被uri識別的資源。制定的資源經伺服器端解析後返回響應內容。也就是說,如果請求的資源是文字,那就保持原樣返回 如果是像cgi common gateway inte ce,通用閘道器介面 那樣的程式,就...