什么是HTTPDNS?
客戶(hù)端直接訪問(wèn)HTTPDNS接口,獲取業(yè)務(wù)在域名配置管理系統(tǒng)上配置的訪問(wèn)延遲最優(yōu)的IP。向獲取到的IP發(fā)送業(yè)務(wù)協(xié)議請(qǐng)求,以HTTP請(qǐng)求為例,通過(guò)在Header中指定Host字段,向HTTPDNS返回的IP發(fā)送標(biāo)準(zhǔn)的HTTP請(qǐng)求即可。(簡(jiǎn)單來(lái)講就是之前用域名請(qǐng)求,現(xiàn)在用向延遲最低的IP發(fā)送請(qǐng)求)
為什么接入HTTPDNS?
網(wǎng)絡(luò)連接速度提高了50%以上!!!(用了都說(shuō)好)
省略了耗時(shí)較多的DNS解析過(guò)程,節(jié)省了大量時(shí)間。同時(shí)也有效的避免了運(yùn)營(yíng)商域名劫持問(wèn)題,網(wǎng)絡(luò)接入成功率大幅提高。
公司項(xiàng)目使用的是DNSPOD提供的服務(wù),當(dāng)然大家也可以使用Tencent提供的HTTPDNS服務(wù)。
直接上干貨
網(wǎng)絡(luò)底層加入HTTPDNS服務(wù)的流程圖如下:
這套架構(gòu)設(shè)計(jì)使用了將近半年,一直保持穩(wěn)定運(yùn)行。大部分結(jié)構(gòu)比較好理解,關(guān)于流程圖需要補(bǔ)充幾點(diǎn):
- IP請(qǐng)求可行性驗(yàn)證開(kāi)關(guān)
開(kāi)發(fā)中發(fā)現(xiàn),如果HTTP請(qǐng)求中間有代理服務(wù)器,那么不能通過(guò)指定Host的方式發(fā)IP請(qǐng)求,所以需要驗(yàn)證一下當(dāng)前網(wǎng)絡(luò)狀態(tài)是否可以通過(guò)指定Host的方式發(fā)IP請(qǐng)求。
- 網(wǎng)絡(luò)狀態(tài)發(fā)生變化
此時(shí)要獲取最新網(wǎng)絡(luò)情況,并及時(shí)更新緩存的域名和IP配對(duì)信息。