Android中級第十二講之DNS問題

liuzxgeek發表於2016-12-19


 本文來自http://blog.csdn.net/liuxian13183/ ,引用必須註明出處!


網路請求經過客戶端請求,傳送資料包、代理(轉發)、隧道(通道)、閘道器(DNS),最終到伺服器。我們都知道網址要通過DNS解析成IP才能到達伺服器,也就說IP變化其實到達的是不同的伺服器;而這裡就涉及到三個問題,第一DNS怎樣解析為IP,第二怎樣防止IP被篡改,第三IP是否需要快取。

首先DNS解析的目的是為了得到使用者IP,將服務交給距離最近的伺服器處理;使用IP直連可以減少解析等待時間,httpdns工具可以解析網址獲得IP,例如DnsPod,好處是繞過運營商的LocalDNS,減少域名解析異常情況的出現。

其次IP被篡改,往往由於DNS解析過程出錯或者被劫持,這時可以使用本地代理來處理網路請求,將網路請求的資料+簽名資訊進行校驗,同時使用dnspod解析出ip進行校驗是否是合法ip,最後使用https的方法發起網路請求。

接著DNS一般都存在快取時間,放置在java.net.InetAddress和虛擬機器層,如果沒有則查詢DNS伺服器獲取。通過如下程式碼設定虛擬機器層的DNS快取時間。

Security.setProperty("networkaddress.cache.ttl", String.valueOf(-1));//查詢成功的快取 -1表示久快取

Security.setProperty("networkaddress.cache.negative.ttl", String.valueOf(0));//查詢失敗的快取  0代表永不快取


單位是秒,其他時間代表快取時間,而4.0以前是永久快取,4.0以後預設為2秒

順便講下Http請求

get可以加入書籤在瀏覽器端做快取,意思是從伺服器獲取資料(查)

post不可以加入書籤,意思是向伺服器傳輸資料(改)

put(增)

delete(刪)


http://www.w3school.com.cn/tags/html_ref_httpmethods.asp

弱網情況下,只好通過壓縮資料包來增加請求成功率,詳見:

http://www.cnblogs.com/answer1991/archive/2012/05/07/2487052.html

UTC:原子時

GMT:格林威治時間

Http和Socket通訊均屬於TCP通訊,均是三次握手,四次關閉。

關於網路安全與網路優化

JsConsole:body.contentEditable=true使Elements變的可寫入

http://blog.csdn.net/u010983881/article/details/52692788



相關文章