實(shí)踐調(diào)研iOS HTTP2.0的網(wǎng)絡(luò)性能優(yōu)化效果
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評論(0)
前面的文章也提到了目前的移動(dòng)端網(wǎng)絡(luò)常見性能問題,以及對應(yīng)的優(yōu)化策略,如果把HTTP1.1 替換為 HTTP2.0,可以說是網(wǎng)絡(luò)性能優(yōu)化的一步大棋。這幾天對 iOS HTTP2.0 進(jìn)行了簡單的調(diào)研、測試,在此做個(gè)簡單的總結(jié)
本文的大概思路是介紹 HTTP1.1 的弊端、HTTP2.0 的優(yōu)勢、HTTP2.0 的協(xié)商機(jī)制、iOS 客戶端如何接入 HTTP2.0,以及如何對其進(jìn)行調(diào)試。主要還是加深記憶、方便后期查閱,文末的資料相比本文或許是更有價(jià)值的。
HTTP 1.1
雖然 HTTP1.1 默認(rèn)是開啟 Keep-Alive 長連接的,一定程度上彌補(bǔ)了HTTP1.0每次請求都要?jiǎng)?chuàng)建連接的缺點(diǎn),但是依然存在 head of line blocking,如果出現(xiàn)一個(gè)較差的網(wǎng)絡(luò)請求,會(huì)影響后續(xù)的網(wǎng)絡(luò)請求。為什么呢?如果你發(fā)出1、2、3 三個(gè)網(wǎng)絡(luò)請求,那么 Response 的順序 2、3 要在第一個(gè)網(wǎng)絡(luò)請求之后,以此類推
針對同一域名,在請求較多的情況下,HTTP1.1 會(huì)開辟多個(gè)連接,據(jù)說瀏覽器一般是6-8 個(gè),較多連接也會(huì)導(dǎo)致延遲增大,資源消耗等問題
HTTP1.1 不安全,可能存在被篡改、被竊聽、被偽裝等問題。當(dāng)然,前陣子 Apple 推廣 HTTPS 的時(shí)候,相信很多人已經(jīng)接入 HTTPS
HTTP 的頭部沒有壓縮,header 的大小也是傳輸?shù)呢?fù)擔(dān),帶來更多的流量消耗和傳輸延遲。并且很多 header 是相同的,重復(fù)傳輸是沒有必要的。
服務(wù)端無法主動(dòng)推送資源到客戶端
HTTP1.1的格式是文本格式,基于文本做一些擴(kuò)展、優(yōu)化相對比較困難,但是文本格式易于閱讀和調(diào)試,但HTTPS之后,也變成二進(jìn)制格式了,這個(gè)優(yōu)勢也不復(fù)存在
HTTP 2.0
在 HTTP2.0中,上面的問題幾乎都不存在了。HTTP2.0 的設(shè)計(jì)來源于 Google 的 SPDY 協(xié)議,如果對 SPDY 協(xié)議不了解的話,也可以先對 SPDY 進(jìn)行了解,不過這不影響繼續(xù)閱讀本文
HTTP 2.0 使用新的二進(jìn)制格式:基本的協(xié)議單位是幀,每個(gè)幀都有不同的類型和用途,規(guī)范中定義了10種不同的幀。例如,報(bào)頭(HEADERS)和數(shù)據(jù)(DATA)幀組成了基本的HTTP 請求和響應(yīng);其他幀例如 設(shè)置(SETTINGS),窗口更新(WINDOW_UPDATE), 和推送承諾(PUSH_PROMISE)是用來實(shí)現(xiàn)HTTP/2的其他功能。那些請求和響應(yīng)的幀數(shù)據(jù)通過流來進(jìn)行數(shù)據(jù)交換。新的二進(jìn)制格式是流量控制、優(yōu)先級、server push等功能的基礎(chǔ)
流(Stream):一個(gè)Stream是包含一條或多條信息、ID和優(yōu)先級的雙向通道
消息(Message):消息由幀組成
幀(Frame):幀有不同的類型,并且是混合的。他們通過stream id被重新組裝進(jìn)消息中
多路復(fù)用:也就是連接共享,剛才說到 HTTP1.1的 head of line blocking,那么在多路復(fù)用的情況下,blocking 已經(jīng)不存在了。每個(gè)連接中 可以包含多個(gè)流,而每個(gè)流中交錯(cuò)包含著來自兩端的幀。也就是說同一個(gè)連接中是來自不同流的數(shù)據(jù)包混合在一起,如下圖所示,每一塊代表幀,而相同顏色塊來自同一個(gè)流,每個(gè)流都有自己的 ID,在接收端會(huì)根據(jù) ID 進(jìn)行重裝組合,就是通過這樣一種方式來實(shí)現(xiàn)多路復(fù)用。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
下載地址
實(shí)踐調(diào)研iOS HTTP2.0的網(wǎng)絡(luò)性能優(yōu)化效果下載
相關(guān)電子資料下載
- iOS17.1可能明天發(fā)布,iOS17.1主要修復(fù)哪些問題? 377
- 華為全新鴻蒙蓄勢待發(fā) 僅支持鴻蒙內(nèi)核和鴻蒙系統(tǒng)應(yīng)用 719
- 蘋果手機(jī)系統(tǒng)iOS 17遭用戶質(zhì)疑 731
- iPhone12輻射超標(biāo)?蘋果推送iOS 17.1解決此事 750
- 傳華為囤積零部件 目標(biāo)明年智能手機(jī)出貨7000萬部;消息稱 MiOS 僅限國內(nèi),小米 28208
- 蘋果推送iOS17.0.3,解決iPhone15Pro系列存在機(jī)身過熱 216
- Testin云測兼容和真機(jī)服務(wù)平臺中上線iPhone 15系列手機(jī) 208
- 利爾達(dá)推出搭載HooRiiOS的Matter模組 145
- 運(yùn)放參數(shù)解析:輸入偏置電流(Ibias)和失調(diào)電流(Ios) 128
- 昆侖太科發(fā)布支持國產(chǎn)飛騰騰銳D2000芯片的開源BIOS固件版本 448