DNS查找時(shí)間
可以使用的工具
$ dig www.baidu.com

$ traceroute www.baidu.com

- 最小化應(yīng)用使用的專有域名的數(shù)量
如果子域名數(shù)量上升至兩位數(shù),我們需要仔細(xì)考慮這方面的優(yōu)化了
冷啟動(dòng)時(shí)不必要鏈接的域名
對(duì)于后續(xù)的子域名,嘗試更早的進(jìn)行DNS解析,也被稱為
DNS預(yù)先下載
DNS預(yù)先下載
可以參考以下兩種方法:
如果子域名和主機(jī)在控制范圍內(nèi),可以配置一個(gè)預(yù)設(shè)的URL,不返回任何數(shù)據(jù),只返回
HTTP 204的狀態(tài)碼。(對(duì)主機(jī)進(jìn)行偽鏈接)使用
gethostbyname執(zhí)行一個(gè)明確的DNS查找。
建議使用第一種方法,針對(duì)不同的協(xié)議
gethostbyname可能會(huì)解析至不同的IP,雖然這很不常見,但第7層的路由可以根據(jù)實(shí)際的請(qǐng)求解析IP地址,例如,圖像是一個(gè)地址,視頻是另外一個(gè)地址。
SSL握手時(shí)間
如果應(yīng)用中所有連接均是通過 TLS/SSL 的(使用HTTPS)
最大程度減少應(yīng)用發(fā)起的連接數(shù),也需要減少應(yīng)用連接的獨(dú)有域名的數(shù)量
請(qǐng)求結(jié)束后不要關(guān)閉
HTTP/S連接
為所有的 HTTP/S 的請(qǐng)求添加頭 Connection: keep-alive
這確保了同樣的連接在下一次請(qǐng)求時(shí)可以復(fù)用
- 使用域分片
域分片在
SPDY及其后續(xù)版本HTTP/2中是可用的
網(wǎng)絡(luò)類型
確保主機(jī)的可到達(dá)性
可使用的工具:可到達(dá)性庫: Reachability
- WiFi
- 4G:
LTE,HSPA+ - 3G:
HSDPA,HSUPA,UMTS,DMA2000 - 2G:
EDGE,GPRS
設(shè)計(jì)時(shí)考慮不同的網(wǎng)絡(luò)可用性
出現(xiàn)失敗時(shí),
在隨機(jī)的,以指數(shù)增長的延遲后進(jìn)行重試-
設(shè)置強(qiáng)制刷新之間的最短時(shí)間
在用戶明確要求刷新時(shí),不要立即發(fā)出請(qǐng)求。檢查是否已經(jīng)存在一個(gè)請(qǐng)求,或者當(dāng)前請(qǐng)求與上次請(qǐng)求的時(shí)間間隔是否小于閾值
如果滿足上述條件,則不要發(fā)送此次請(qǐng)求
-
使用可到達(dá)性庫: Reachability 發(fā)現(xiàn)網(wǎng)絡(luò)狀態(tài)變化
發(fā)現(xiàn)網(wǎng)絡(luò)不可用時(shí),向用戶提示。通過讓用戶了解潛在的連接問題,可以避免應(yīng)用受到指責(zé)
不要緩存網(wǎng)絡(luò)狀態(tài)
-
基于網(wǎng)絡(luò)類型下載內(nèi)容
比如說圖片,不用總下載原始的、高質(zhì)量的圖像。應(yīng)該始終下載和設(shè)備最適配的圖像
-
樂觀的預(yù)下載
在WiFi網(wǎng)絡(luò)中,預(yù)先下載用戶在后續(xù)時(shí)刻需要的內(nèi)容。
最好分次下載內(nèi)容,在使用后關(guān)掉網(wǎng)絡(luò)連接,有助于節(jié)省電量
如果適用,當(dāng)網(wǎng)絡(luò)可用時(shí),
支持同步的離線存儲(chǔ)
總是要將網(wǎng)絡(luò)和通信與UI解耦
延遲
需要追蹤以下數(shù)據(jù)
- 連接超時(shí)
- 響應(yīng)超時(shí)
- 載荷大小
網(wǎng)絡(luò)API
你可能需要掌握
網(wǎng)絡(luò)任務(wù)的暫停,停止和重新啟動(dòng)
每個(gè)會(huì)話的存儲(chǔ)(緩存,cookie jar 等)
后臺(tái)聯(lián)網(wǎng)的好處
身份驗(yàn)證
異步方法
數(shù)據(jù)格式和數(shù)據(jù)壓縮
工具
dig

traceroute

網(wǎng)絡(luò)鏈接調(diào)節(jié)器
Charles

AT&T
