緩存站點文件的方法及其系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及文件處理技術(shù)領(lǐng)域,尤其是涉及一種緩存站點文件的方法及其系統(tǒng)。
【背景技術(shù)】
[0002]目前許多站點由于其內(nèi)容相同,會使用相同的js組件或者其他相同的圖標,而在獲取這些內(nèi)容時,瀏覽器是通過url加載,在獲取緩存時,極有可能導(dǎo)致用戶訪問每個站點都需要重新到CDN服務(wù)器上加載此文件。因此既浪費用戶的網(wǎng)絡(luò)資源,又耗費了時間。
[0003]現(xiàn)有中國專利申請(申請?zhí)?201410838045.6)通過其哈希散列或哈希值來判斷文件是否相同,但并沒有修改了其URL,這樣只能解決單個URL資源在不同頁面應(yīng)用的復(fù)用。因此在實際中,仍會出現(xiàn)在多個URL中重復(fù)加載該資源文件。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所要解決的技術(shù)問題是:存在相同資源文件的多個URL修改成相同的URL,并緩存,避免用戶加載時浪費網(wǎng)絡(luò)資源,并節(jié)省時間。
[0005]為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:提供一種緩存站點文件的方法,包括:
[0006]解析站點中的html文檔,存儲引用資源文件的URL到CDN服務(wù)器中;
[0007]下載URL的資源文件,并生成哈希散列;
[0008]獲取對應(yīng)于相同哈希散列的多個URL,并修改成相同URL,緩存到⑶N服務(wù)器中。
[0009]為解決上述問題,本發(fā)明還提供一種緩存站點文件的系統(tǒng),包括:
[0010]解析存儲模塊,用于解析站點中的html文檔,存儲引用資源文件的URL到CDN服務(wù)器中;
[0011]散列生成模塊,用于下載URL的資源文件,并生成哈希散列;
[0012]修改緩存模塊,用于獲取對應(yīng)于相同哈希散列的多個URL,并修改成相同URL,緩存到⑶N服務(wù)器中。
[0013]本發(fā)明的有益效果在于:區(qū)別于現(xiàn)有技術(shù),本發(fā)明通過解析站點中的html文件,存儲對應(yīng)的URL到CDN服務(wù)器中,并生成哈希散列,將相同資源的哈希散列的URL修改成一個,并進行緩存。通過上述方式,本發(fā)明提高用戶瀏覽器的命中率,并提高頁面加載速度,減少CDN服務(wù)器與用戶之間的傳輸流量。
【附圖說明】
[0014]圖1為本發(fā)明方法實施例一的流程示意圖;
[0015]圖2為本發(fā)明系統(tǒng)實施例二的結(jié)構(gòu)框圖。
【具體實施方式】
[0016]為詳細說明本發(fā)明的技術(shù)內(nèi)容、所實現(xiàn)目的及效果,以下結(jié)合實施方式并配合附圖予以說明。
[0017]本發(fā)明最關(guān)鍵的構(gòu)思在于:通過將html文件中通過url引用的資源文件計算hash散列,找出url不同但內(nèi)容相同的資源文件,將其中的文件以及哈希散列緩存在cdn服務(wù)器。
[0018]請參照圖1,本發(fā)明實施例一提供一種緩存站點文件的方法,包括:
[0019]S1:解析站點中的html文檔,存儲引用資源文件的URL到⑶N服務(wù)器中;
[0020]S2:下載URL的資源文件,并生成哈希散列;
[0021 ] S3:獲取對應(yīng)于相同哈希散列的多個URL,并修改成相同URL,緩存到⑶N服務(wù)器中。
[0022]具體地,步驟SI為:
[0023]通過⑶N服務(wù)器請求訪問多個站點,獲取站點中的html文檔;
[0024]解析所述html文檔,獲得引用相同資源文件的URL,并存儲。
[0025]而在步驟S2中,本發(fā)明可通過SHA-1算法生成哈希散列。
[0026]在將修改成一致的URL緩存到⑶N服務(wù)器中后,用戶可通過瀏覽器發(fā)起訪問站點的http請求,并解析到CDN服務(wù)器中;CDN服務(wù)器向站點發(fā)起http請求,站點返回對應(yīng)資源文件的URL到CDN服務(wù)器;CDN服務(wù)器返回修改成相同資源文件的URL的http請求到瀏覽器;瀏覽器解析獲取資源文件。
[0027]瀏覽器會緩存相同urI的文件,如果訪問別的網(wǎng)站訪問到這個文件,就可以直接在本地讀取,無需再訪問服務(wù)器。以下通過一個具體的實例進行說明,以方便本領(lǐng)域技術(shù)人員理解。
[0028]本發(fā)明解決的是多個不同url資源的復(fù)用?,F(xiàn)有cdn技術(shù)只能解決單個url資源在不同頁面引用的復(fù)用。在原站點上可存在多個文件,因為他們可分別存放在不同的服務(wù)器上,并且url不同。但是實際上這多個文件有可能是一個文件的多個副本,即文件的內(nèi)容相同。
[0029]比如:http://sitel.com和http: //site2.com兩個站點都引用了 jQuery.js這個文件,但是他們的url不同,現(xiàn)有技術(shù)的cdn會使得用戶的本地瀏覽器會將這兩個文件識別為不同的文件會下載2次。因為他們的url—個是http://si tel.com/ jQuery.js—個是http: //site2.com/ jQuery.js。利用本方案后,在cdn服務(wù)器將他們統(tǒng)一為相同的url,從而實現(xiàn)的用戶瀏覽器只下載一次這個js的目的。
[0030]CDN服務(wù)器上可設(shè)置文件緩存模塊及URL列表存儲模塊,在用戶訪問網(wǎng)頁時,對用戶訪問的站點,如http: //sitel.com/1.html或http: //site2.com/2.html或者其他頁面html文檔進行解析,將其中引用的資源文件URL存儲到CDN服務(wù)器中的引用的資源文件URL列表存儲模塊。
[0031]文件緩存模塊對上述資源文件URL進行下載,并通過SHA-1算法生成每個文件的hash散列,找出站點中相同SHA-1散列的文件所對應(yīng)的資源文件URL,進行緩存。
[0032]舉個例子:
[0033]用戶I的瀏覽器通過CDN服務(wù)器訪問http://sitel.com/l.html頁面,其中另外一個站點的頁面是http: //site2.com/2.html它與http://sitel.com/1.html 中都引用了一個相同的文件,例如j Query 1.9的版本。
[0034]CDN服務(wù)器中的文件緩存模塊對解析出http://sitel.com/1.html中所有引用的資源文件URL,并對它進行下載,再通過SHA-1算法生成hash散列,其中SHA-1算法是一種散列算法,可以生成標識文件唯一性的標識。
[0035]用戶2的瀏覽器又通過⑶N服務(wù)器訪問http://site2.com/2.html,這時重復(fù)上述步驟,也對這個頁面中的用的資源文件URL下載下來的文件計算hash散列。
[0036]此時,文件緩存模塊通過上述計算,計算出兩個頁面包含的兩個引用資源文件URL為http: //sitel.com/ j query.1.9.js 和http: //site2.com/ js/j query.1.9.js,這兩個資源文件存在于上述兩個站點,但是它們的hash散列相同,表示他們文件也相同。
[0037]當(dāng)其他用戶訪問CDN服務(wù)器時,將http://site2.eom/2.h tm I 與 http://sitel.com/1.html中兩個相同的引用資源文件到修改為相同的url。即,將頁面中http://sitel.c