最大化壓縮APP重復數據請求

先說說HTTP請求

對于所有開發(fā)者來說扣蜻,HTTP協(xié)議應該非常熟悉累颂。在HTTP返回的狀態(tài)中诫欠,304是一個非常常用的標準艰赞。304的意思是,告訴瀏覽器提佣,你所請求的文件并沒有變動吮蛹,你可以繼續(xù)使用上次緩存下來的文件荤崇,減少重復數據的再次傳輸。

簡書某接口返回304狀態(tài)

304狀態(tài)碼

304狀態(tài)碼一般會由瀏覽器客戶端潮针,和服務器程序(如:nginx术荤,apache)根據一定的協(xié)議去協(xié)作完成。對用戶透明每篷,有時候甚至對開發(fā)者也透明瓣戚。因為很多服務器程序會自動處理靜態(tài)文件(如:js,css)焦读,達到優(yōu)化請求的效果子库。

啟發(fā)

實際上,我們可以在程序里面實現一套我們自己所實現的“304”狀態(tài)碼矗晃,以達到減少重復數據傳輸的時間仑嗅。

開始

APP端

這里我們需要實現一個庫,去維護我們請求的緩存张症。
大致需求如下:

 1.請求(URL)的時候仓技,帶上上次響應數據摘要(HASH),并鎖住緩存俗他,不允許刪除操作脖捻,沒有則不帶。
 2.獲得響應的時候兆衅,有兩種情況:返回完整數據和數據未變動標記(304)
 3.返回完整數據的時候:那么生成hash地沮,并更新緩存,可以用于下次請求羡亩。
 4.返回未變動標記(304):那么直接從緩存獲取數據诉濒,并更新有效期。

這里后面還可以根據相關的緩存淘汰策略夕春,根據用戶行為去選擇所需要淘汰的緩存數據集,節(jié)省空間专挪,這里后面有時間可以再發(fā)個帖講講自己的想法及志。

服務端

這里服務端需要做的很簡單:

1.計算結果(這里和往常一樣)
2.若客戶端上傳HASH則計算結果HASH。
3.結果HASH 與 客戶端上傳HASH對比寨腔。
4.不一致則返回完整數據集速侈,一致則返回未變動標記。

先說說缺點

缺點也比較明顯迫卢,就是每次請求和響應都需要進行一個hash的運算倚搬,hash的運算不太適合于數據比較大情況。

MD5運算1G文件大約需要20-30s乾蛤,極其影響響應速度每界。

今天測試了一下捅僵,PHP5.3,100W次的8192個數字md5運算眨层,大約是10.545665979385秒庙楚。感覺性能也還行吧。不過對于性能極致追求的人還是要保持時刻謹慎的態(tài)度趴樱。

也說說優(yōu)點

優(yōu)點其實也很容易發(fā)現:

尤其適合于那種頻繁請求的中小型數據量且數據不會經常變動同步的接口馒闷,能夠減少二次傳輸延時。

對于大數據量且數據量不常變的異步接口其實也是同樣適用叁征,對于大數據量纳账,這個二次傳輸的優(yōu)化速度也同樣很明顯。在不影響用戶體驗的情況下捺疼,達到速度優(yōu)化的效果疏虫。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市帅涂,隨后出現的幾起案子议薪,更是在濱河造成了極大的恐慌,老刑警劉巖媳友,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件斯议,死亡現場離奇詭異,居然都是意外死亡醇锚,警方通過查閱死者的電腦和手機哼御,發(fā)現死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來焊唬,“玉大人恋昼,你說我怎么就攤上這事「洗伲” “怎么了液肌?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鸥滨。 經常有香客問我嗦哆,道長,這世上最難降的妖魔是什么婿滓? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任老速,我火速辦了婚禮,結果婚禮上凸主,老公的妹妹穿的比我還像新娘橘券。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布旁舰。 她就那樣靜靜地躺著锋华,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鬓梅。 梳的紋絲不亂的頭發(fā)上供置,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音绽快,去河邊找鬼芥丧。 笑死,一個胖子當著我的面吹牛坊罢,可吹牛的內容都是我干的续担。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼活孩,長吁一口氣:“原來是場噩夢啊……” “哼物遇!你這毒婦竟也來了?” 一聲冷哼從身側響起憾儒,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤询兴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后起趾,有當地人在樹林里發(fā)現了一具尸體诗舰,經...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年训裆,在試婚紗的時候發(fā)現自己被綠了眶根。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡边琉,死狀恐怖属百,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情变姨,我是刑警寧澤族扰,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站定欧,受9級特大地震影響别伏,放射性物質發(fā)生泄漏。R本人自食惡果不足惜忧额,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望愧口。 院中可真熱鬧睦番,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至示启,卻和暖如春兢哭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背夫嗓。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工迟螺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人舍咖。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓矩父,卻偏偏與公主長得像,于是被迫代替她去往敵國和親排霉。 傳聞我的和親對象是個殘疾皇子窍株,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內容

  • 國家電網公司企業(yè)標準(Q/GDW)- 面向對象的用電信息數據交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 10,967評論 6 13
  • /*--------------------------- 01 HTTP請求 -----------------...
    藍心兒的藍色之旅閱讀 2,163評論 0 4
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現攻柠,斷路器球订,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • 1. 網絡基礎TCP/IP HTTP基于TCP/IP協(xié)議族,HTTP屬于它內部的一個子集瑰钮。 把互聯(lián)網相關聯(lián)的協(xié)議集...
    yozosann閱讀 3,444評論 0 20
  • 給我一千次機會遇見你吧冒滩。當你牽著馬兒在溪邊飲水的時候;當你坐在草地的一隅畫著遠處的素描的時候飞涂;當你坐在星空下抱著吉...
    Carolineeeeee閱讀 331評論 0 0