一種基于云-端協(xié)同的移動(dòng)瀏覽器資源加載優(yōu)化方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明是一種基于云-端協(xié)同的移動(dòng)瀏覽器資源加載優(yōu)化方法,屬于軟件技術(shù)領(lǐng) 域。
【背景技術(shù)】
[0002] 根據(jù)中國互聯(lián)網(wǎng)絡(luò)信息中心于2015年1月發(fā)布的《第35次中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r 統(tǒng)計(jì)報(bào)告》,截至2014年12月,我國手機(jī)網(wǎng)民規(guī)模達(dá)5.57億,網(wǎng)民中使用手機(jī)上網(wǎng)的人群占 比已達(dá)到85.8%。連續(xù)幾年來,手機(jī)網(wǎng)民規(guī)模保持穩(wěn)定增長,手機(jī)也早已成為第一大上網(wǎng)終 端。
[0003] 越來越多的人們正在利用手機(jī)或者平板電腦來通過Wi-Fi或3G網(wǎng)絡(luò)上網(wǎng),隨之而 來的,Web瀏覽器成為了移動(dòng)設(shè)備上最常用的應(yīng)用之一。據(jù)研究表明,瀏覽器占據(jù)了移動(dòng)設(shè) 備63%的顯示時(shí)間。但是,現(xiàn)有移動(dòng)瀏覽器的用戶體驗(yàn)卻遠(yuǎn)不盡如人意。資源加載是影響瀏 覽器性能重要因素之一,有實(shí)驗(yàn)表明,網(wǎng)頁加載65%的時(shí)間都消耗在資源加載上。由于移動(dòng) 設(shè)備的網(wǎng)絡(luò)狀況通常并不理想,尤其是可能出現(xiàn)網(wǎng)絡(luò)擁擠或是用戶正在移動(dòng)的狀況,這個(gè) 問題就變得更為嚴(yán)重了。此外,下載資源的過程本身會(huì)消耗許多電量,而電量恰恰是移動(dòng)設(shè) 備上最為稀缺的資源。
[0004] 為了加速Web資源加載,緩存機(jī)制被廣泛運(yùn)用。通過緩存的方法,可以為用戶減少 資源下載量,從而提高Web瀏覽性能。這種緩存機(jī)制給移動(dòng)設(shè)備帶來的好處更大,因?yàn)樵谝?動(dòng)設(shè)備上,該機(jī)制不僅可以減少網(wǎng)頁加載時(shí)間,還可以減少網(wǎng)絡(luò)流量和電量消耗。然而在實(shí) 際運(yùn)用中,緩存卻常常并未被很好地配置與實(shí)現(xiàn)。有研究表明,緩存機(jī)制的理論性能與實(shí)際 性能之間有很大差距因此當(dāng)前有這樣一個(gè)需求,在不改變現(xiàn)有瀏覽器與服務(wù)器實(shí)現(xiàn)的前提 下,對(duì)現(xiàn)有的緩存機(jī)制進(jìn)行優(yōu)化,提高緩存的利用效果。希望可以以此進(jìn)一步提高移動(dòng)設(shè)備 用戶在瀏覽網(wǎng)頁時(shí)的體驗(yàn),減少用戶的流量與電量消耗。
【發(fā)明內(nèi)容】
[0005] 針對(duì)現(xiàn)有技術(shù)中存在的問題,本發(fā)明的目的在于提供一種基于云-端協(xié)同的移動(dòng) 瀏覽器資源加載優(yōu)化方法。本發(fā)明是在不改變現(xiàn)有用戶瀏覽習(xí)慣與Web應(yīng)用緩存原有配置 的前提下,最大程度減少Web資源的傳輸流量并提高加載速度。其核心思想是:在原有的Web 應(yīng)用架構(gòu)的基礎(chǔ)上,在手機(jī)端搭建代理服務(wù)器,并借助云服務(wù)器預(yù)取Web資源,即將原有的 從瀏覽器到服務(wù)器的兩層架構(gòu)改變?yōu)樗膶蛹軜?gòu)。
[0006] 該系統(tǒng)在手機(jī)端搭建HTTP代理服務(wù)器,并將手機(jī)端瀏覽器的HTTP代理配置為該手 機(jī)端代理服務(wù)器;在個(gè)人云上為每個(gè)手機(jī)用戶搭建云服務(wù)器。手機(jī)端代理服務(wù)器接收手機(jī) 端瀏覽器的請(qǐng)求,并向手機(jī)端瀏覽器返回資源響應(yīng)。手機(jī)端代理服務(wù)器并不直接向互聯(lián)網(wǎng) 請(qǐng)求資源,而向在個(gè)人云上搭建的云服務(wù)器請(qǐng)求資源,由云服務(wù)器從互聯(lián)網(wǎng)上下載資源,并 有選擇地向手機(jī)端進(jìn)行推送。在此過程中,通過URL匹配算法、資源校驗(yàn)碼比對(duì)、數(shù)據(jù)壓縮與 網(wǎng)站預(yù)取等手段達(dá)到最大程度減少傳輸流量并提高加載速度的目的。
[0007] 本發(fā)明的技術(shù)方案為:
[0008] -種云_端協(xié)同的移動(dòng)瀏覽器緩存優(yōu)化方法,具體步驟為:
[0009] 1)在手機(jī)端建立代理服務(wù)器,該代理服務(wù)器可以接收瀏覽器的請(qǐng)求,并解析請(qǐng)求, 對(duì)于代理服務(wù)器已緩存的資源,或者通過URL匹配算法計(jì)算出存在對(duì)應(yīng)的資源,可以直接將 資源返回給瀏覽器;對(duì)于本地未存儲(chǔ)的資源,向云端服務(wù)器進(jìn)行資源的查詢。
[0010] 2)在云端為每個(gè)手機(jī)用戶建立一個(gè)云服務(wù)器,該云服務(wù)器可以進(jìn)行Internet連 接。云服務(wù)器可以預(yù)取網(wǎng)站的資源,并接收手機(jī)端代理服務(wù)器的資源請(qǐng)求。如果資源已經(jīng)被 緩存在云服務(wù)器上,則云服務(wù)器直接向手機(jī)端代理服務(wù)器返回該資源,如果沒有,則向目標(biāo) 網(wǎng)站進(jìn)行請(qǐng)求并將結(jié)果返回。
[0011] 3)用戶在手機(jī)端將瀏覽器的代理配置為手機(jī)端的代理服務(wù)器。
[0012] 進(jìn)一步的,每一個(gè)資源都會(huì)在云服務(wù)器端計(jì)算出該文件的校驗(yàn)值,作為標(biāo)識(shí)資源 內(nèi)容的唯一依據(jù),可以依據(jù)該值對(duì)緩存資源進(jìn)行檢索。在服務(wù)器端將資源傳回手機(jī)端時(shí),會(huì) 先檢索該校驗(yàn)值的文件是否已存在于手機(jī)端的緩存中,如果已存在,則僅返回該資源的校 驗(yàn)值,手機(jī)端代理服務(wù)器會(huì)根據(jù)該校驗(yàn)值提取資源。
[0013] 進(jìn)一步的,云端服務(wù)器會(huì)定時(shí)預(yù)取用戶可能訪問的網(wǎng)站,提前建立網(wǎng)站的緩存以 供用戶訪問。
[0014] 進(jìn)一步的,所有服務(wù)器到手機(jī)端的傳輸均經(jīng)過壓縮,以節(jié)省未經(jīng)壓縮資源的傳輸 流量。
[0015] 使用本發(fā)明的框架,資源訪問主要包含三個(gè)步驟:
[0016] 1.預(yù)取目標(biāo)資源:云服務(wù)器端會(huì)定期對(duì)用戶可能訪問的資源進(jìn)行預(yù)取。
[0017] 2 .接收瀏覽器請(qǐng)求并檢查手機(jī)端緩存:手機(jī)端代理服務(wù)器接收瀏覽器請(qǐng)求,如果 手機(jī)端沒有緩存資源,則向云端服務(wù)器請(qǐng)求資源;如果該緩存存在或可以根據(jù)URL匹配算法 找到相應(yīng)資源,則直接向?yàn)g覽器返回資源。
[0018] 3.檢查云服務(wù)器端緩存:如果云服務(wù)器端沒有緩存資源,則向原網(wǎng)站請(qǐng)求,然后將 資源傳回手機(jī)端代理服務(wù)器。手機(jī)端代理服務(wù)器再將結(jié)果依照HTTP響應(yīng)的結(jié)構(gòu)發(fā)回瀏覽 器。
[0019] 上述步驟的具體技術(shù)方案如下:
[0020] 1.預(yù)取目標(biāo)資源:服務(wù)器端會(huì)對(duì)用戶可能訪問的資源進(jìn)行提前預(yù)取,具體的資源 列表會(huì)根據(jù)用戶的訪問習(xí)慣產(chǎn)生。服務(wù)器會(huì)將預(yù)取好的資源存儲(chǔ),同時(shí)計(jì)算好校驗(yàn)值,并將 條目整理到數(shù)據(jù)庫中。
[0021] 2.代理服務(wù)器接收瀏覽器請(qǐng)求并檢查手機(jī)端緩存:本發(fā)明可以與瀏覽器的原有緩 存同時(shí)使用,瀏覽器會(huì)將原本需要向遠(yuǎn)程服務(wù)器請(qǐng)求的資源發(fā)到手機(jī)端代理服務(wù)器上。手 機(jī)端的代理服務(wù)器會(huì)接收請(qǐng)求并根據(jù)HTTP協(xié)議對(duì)請(qǐng)求進(jìn)行解析。之后在本地檢測(cè)資源是否 已被手機(jī)端代理服務(wù)器緩存。如果緩存不存在,手機(jī)會(huì)將解析到的資源URL通過URL匹配算 法在緩存列表中進(jìn)行查詢,如果查詢到相關(guān)資源,則返回資源,否則將資源請(qǐng)求通過HTTP2 或SPDY協(xié)議發(fā)送給服務(wù)器。
[0022] URL匹配算法包含兩部分,URL模式識(shí)別與URL匹配查詢,其中模式識(shí)別在云服務(wù)器 端進(jìn)行,匹配查詢?cè)谑謾C(jī)端進(jìn)行。
[0023] 云服務(wù)器會(huì)對(duì)同一網(wǎng)站定時(shí)進(jìn)行的抓取與解析,由此可以得到URL和資源的對(duì)應(yīng) 列表。同一資源對(duì)應(yīng)的URL可能會(huì)有多個(gè)。本算法的目的在于根據(jù)URL檢索到潛在對(duì)應(yīng)的資 源,因此需要建立每個(gè)資源對(duì)應(yīng)的URL模式。算法首先對(duì)URL根據(jù)常見URL分隔符進(jìn)行切分, 對(duì)于同一資源,計(jì)算得出URL每一部分發(fā)生變化時(shí),該資源保持不變的可能性,這個(gè)值我們 稱為段落關(guān)鍵系數(shù),計(jì)算方法為:
[0025] 對(duì)于所有資源,該值永遠(yuǎn)介于0至1之間。
[0026]當(dāng)服務(wù)器將資源與其URL發(fā)回手機(jī)端時(shí),該URL中所有段落的關(guān)鍵系數(shù)都將被傳 回。
[0027]當(dāng)手機(jī)端代理服務(wù)接收到一個(gè)URL的請(qǐng)求時(shí),會(huì)首先進(jìn)行匹配查詢,將該URL與相 應(yīng)網(wǎng)站的所有URL記錄進(jìn)行相似度的對(duì)比(先根據(jù)該URL找到相應(yīng)網(wǎng)站,然后將該網(wǎng)站的所 有URL記錄進(jìn)行對(duì)比),相似度的計(jì)算方法如下:
[0029]其中Ct1表示檢索中的待請(qǐng)求URL的段落是否與目標(biāo)URL的段落匹配,如果不匹配則 為1,匹配則為0。特別地,當(dāng)待請(qǐng)求URL與目標(biāo)URL完全相同時(shí),該相似度結(jié)果為1。當(dāng)相似度 結(jié)果大于〇. 5時(shí),我們認(rèn)為目標(biāo)URL的資源就是待請(qǐng)求U