7.2.2 降低請求延遲

網絡延遲包括在手機與運營商網絡間建立連接的時間、建立 TCP 連接的時間, 可能還有協商 SSL 連接的時間, 以及發送與接收 HTTP 請求的時間. 實際上, 在 iOS 設備上, 我們沒有辦法降低單個網絡請求的延遲, 不過可以通過一些技術來降低多個請求的延遲. 本節將會介紹如何降低應用的網絡請求所消耗的潛在時間

對于應用所需的一小塊數據來說, 每次都建立并關閉一條 TCP 連接是非常不明智的. 降低請求延遲有兩項最佳實踐: 在單個 TCP 連接上發送 HTTP 請求, 以管道的形式發送 HTTP 請求, 從而優化全雙工 TCP 連接的使用

你的應用可能已經在使用 HTTP 請求集群了, 因為 iOS 默認情況下就是這樣做的. 當應用使用完 NSURLConnection 對象后, 操作系統在關閉連接前會保持它開啟幾秒鐘, 通常是 10 秒. 這項技術也可以在更高的層次上使用, 保持不重要的更新, 直到積累了足夠的批量數據或是某些用戶動作需要網絡活動為止. 接下來, 應用可以按照順序執行所有的隊列請求, 在這個過程中一直保持激活相同的連接, 避免建立多個 TCP 連接的開銷

另一種方式是使用單個服務端點來架構服務層, 它會將請求代理給組織內外的其他服務. 這種方式可以通過讓應用對不同的活動重用單個連接而避免延遲

HTTP 管道是重用現有 TCP 連接的第三種方式. 它使得 HTTP 客戶端能夠在對第一個請求的響應返回前在相同的 TCP Socket 上發送第二個請求. 響應返回的順序與請求發起的順序保持一致.

圖 7-5: 管道與非管道下的通信中請求與響應流

由于 POST 與 PUT 命令會修改服務器上的實體, 因此我們建議不要對這樣的請求使用管道

NSURLRequest 開啟管道支持:

NSURLRequest 開啟管道支持

使用這種方式時需要對目標服務器進行廣泛測試, 因為并非所有的服務器都支持 HTTP 管道. Apache 與 IIS 都支持管道, 無需任何額外配置

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,401評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,011評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,263評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,543評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,323評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,874評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,968評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,095評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,605評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,551評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,720評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,242評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,961評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,358評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,612評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,330評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,690評論 2 370

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,775評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,582評論 25 707
  • 在下著小雨的夜晚,一路小跑到電影院,終于看了《愛樂之城》。好久沒看歌舞片,再看還是覺得好歡樂。果然音樂和舞蹈是珠聯...
    島嶼書閱讀 2,138評論 4 9
  • 身為一只程序猿。今天談談工作中的加班這件事。遇上項目上線,難免會加班。或代碼沒寫完,或環境沒配好,或遇到未知問題。...
    笨小孩__閱讀 307評論 0 1
  • 2017已經悄然到來了5天了。 此時此刻,兩歲多的楠寶已經熟睡,均勻的呼吸,恬靜的小臉讓人忍不住想要親一親。肚子里...
    花花家的小豆豆閱讀 369評論 0 1