本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,特別涉及一種提高網(wǎng)絡(luò)資源訪問速度的方法及裝置。
背景技術(shù):http客戶端訪問web網(wǎng)站的時候,html文件和樣式表文件(如css文件)、頁面腳本文件(如js文件)等是分開下載的,需要同web站點(diǎn)進(jìn)行多次連接;并且由于客戶端瀏覽器需要在解析完html內(nèi)容之后才能下載樣式表文件和頁面腳本文件,導(dǎo)致下載過程大體上是串行的;另外,瀏覽器對資源的下載還存在并行的限制。這些問題會導(dǎo)致延長下載網(wǎng)絡(luò)資源的時間,影響用戶瀏覽體驗。
技術(shù)實現(xiàn)要素:有鑒于此,本發(fā)明的目的是提供一種提高網(wǎng)絡(luò)資源訪問速度的方法及裝置。為實現(xiàn)上述目的,本發(fā)明提供技術(shù)方案如下:一種提高網(wǎng)絡(luò)資源訪問速度的方法,應(yīng)用于web代理網(wǎng)關(guān)中,所述方法包括:接收到客戶端的http請求時,獲取所述http請求對應(yīng)的html文件;判斷緩存中是否存在所述http請求對應(yīng)的所述html文件,若是,從緩存中獲取所述html文件;否則,從源網(wǎng)站獲取所述html文件;對html文件中可合并資源對應(yīng)的資源鏈接進(jìn)行合并,或者,在html文 件中增加合并代碼,所述合并代碼用于指示客戶端對所述資源鏈接進(jìn)行合并,所述可合并資源包括頁面腳本文件、樣式表文件、圖片和應(yīng)用;獲取所述可合并資源,對獲取到的可合并資源進(jìn)行合并后緩存;將修改后的html文件發(fā)送給客戶端,以使客戶端對該html文件進(jìn)行解析后請求合并后的資源。上述的方法,其中,還包括:在html文件中增加分解代碼,所述分解代碼用于指示客戶端對合并后的資源進(jìn)行拆解。一種提高網(wǎng)絡(luò)資源訪問速度的裝置,應(yīng)用于web代理網(wǎng)關(guān)中,所述裝置包括:獲取單元,用于接收到客戶端的http請求時,獲取所述http請求對應(yīng)的html文件;判斷緩存中是否存在所述http請求對應(yīng)的所述html文件,若是,從緩存中獲取所述html文件;否則,從源網(wǎng)站獲取所述html文件;修改單元,用于對html文件中可合并資源對應(yīng)的資源鏈接進(jìn)行合并,或者,在html文件中增加合并代碼,所述合并代碼用于指示客戶端對所述資源鏈接進(jìn)行合并,所述可合并資源包括頁面腳本文件、樣式表文件、圖片和應(yīng)用;合并單元,用于獲取所述可合并資源,對獲取到的可合并資源進(jìn)行合并后緩存;發(fā)送單元,用于將修改后的html文件發(fā)送給客戶端,以使客戶端對該html文件進(jìn)行解析后請求合并后的資源。上述的裝置,其中,所述修改單元還用于:在html文件中增加分解代碼,所述分解代碼用于指示客戶端對合并后的資源進(jìn)行拆解。與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:通過在web代理網(wǎng)關(guān)上對html文件進(jìn)行修改,使得客戶端可以針對合并后的資源進(jìn)行請求,從而不需要對每個資源都單獨(dú)發(fā)出請求,減少了瀏覽器的請求次數(shù);對資源鏈接進(jìn)行合并之后減少了連接過程,可以有效提高資源文件下載 速度;由于是在web代理網(wǎng)關(guān)中實現(xiàn)資源的合并,因此不需要對web源站進(jìn)行修改。附圖說明圖1是根據(jù)本發(fā)明一個實施例的提高網(wǎng)絡(luò)資源訪問速度的系統(tǒng)結(jié)構(gòu)圖;圖2是根據(jù)本發(fā)明一個實施例的提高網(wǎng)絡(luò)資源訪問速度的裝置結(jié)構(gòu)圖;圖3是根據(jù)本發(fā)明一個實施例的提高網(wǎng)絡(luò)資源訪問速度的方法流程圖。具體實施方式以下結(jié)合附圖對本發(fā)明進(jìn)行詳細(xì)描述。本發(fā)明實施例在web代理網(wǎng)關(guān)上自動將可合并資源進(jìn)行合并,并通知客戶端對合并后的資源進(jìn)行請求,由于客戶端不需要對每個資源單獨(dú)發(fā)出請求,從而提高了網(wǎng)絡(luò)資源訪問速度。圖1是根據(jù)本發(fā)明一個實施例的提高網(wǎng)絡(luò)資源訪問速度的系統(tǒng)結(jié)構(gòu)圖。參照圖1,所述系統(tǒng)可以包括客戶端10、web代理網(wǎng)關(guān)20和網(wǎng)站服務(wù)器30,web代理網(wǎng)關(guān)20位于客戶端10和網(wǎng)站服務(wù)器30之間,一個web代理網(wǎng)關(guān)20可以連接一個或多個網(wǎng)站服務(wù)器30。其中,客戶端10中安裝有用戶瀏覽器11,瀏覽器是指可以顯示網(wǎng)頁服務(wù)器或者文件系統(tǒng)的HTML文件內(nèi)容,并讓用戶與這些文件交互的一種軟件,可以是IE、firefox、chrome等瀏覽器。網(wǎng)頁瀏覽器主要通過HTTP協(xié)議與網(wǎng)頁服務(wù)器交互并獲取網(wǎng)頁,這些網(wǎng)頁由統(tǒng)一資源定位符(URL)指定,文件格式通常為HTML,并由MIME在HTTP協(xié)議中指明??蛻舳?0可以是有線或無線通信裝置,例如,計算機(jī),移動電話,個人數(shù)字助理(PDA)等。網(wǎng)站服務(wù)器30上存儲有一個或多個網(wǎng)頁31。Web代理網(wǎng)關(guān)20是一種反向代理,瀏覽器11可以通過web代理網(wǎng)關(guān)20獲取網(wǎng)站服務(wù)器30中的網(wǎng)頁31。具體地,瀏覽器11對網(wǎng)站服務(wù)器30的 http請求(頁面請求)會首先到達(dá)web代理網(wǎng)關(guān)20,web代理網(wǎng)關(guān)20接收到瀏覽器11的頁面請求后,查看請求的頁面文件是否存在與本地緩存中,若是,則從緩存中取出頁面文件返回給瀏覽器11,否則,從網(wǎng)站服務(wù)器30獲取頁面文件后返回給瀏覽器11,并將所述頁面文件添加到本地緩存中,這樣,web代理網(wǎng)關(guān)20再次接收到對該頁面文件的請求時,可以直接從本地緩存中獲取該頁面文件。本發(fā)明實施例與現(xiàn)有技術(shù)的一個不同在于,web代理網(wǎng)關(guān)20能夠自動識別html頁面中引用的資源,對于其中可合并的資源,還將對應(yīng)的資源鏈接進(jìn)行合并,或者,通過增加合并代碼來指示客戶端對所述資源鏈接進(jìn)行合并,并且,還從網(wǎng)站服務(wù)器30中獲取可合并資源,對獲取到的可合并資源進(jìn)行合并后緩存。這樣,客戶端10對修改后的html文件進(jìn)行解析后,便可以向web代理網(wǎng)關(guān)20請求合并后的資源,由于客戶端不需要對每個資源單獨(dú)發(fā)出請求,因此能夠提高資源下載速度。其中,可合并資源可以包括頁面腳本文件(如js文件)、樣式表文件(如css文件)、圖片和應(yīng)用等等。以下給出web代理網(wǎng)關(guān)20的具體實現(xiàn)。圖2是根據(jù)本發(fā)明一個實施例的提高網(wǎng)絡(luò)資源訪問速度的裝置結(jié)構(gòu)圖,所述裝置設(shè)置在web代理網(wǎng)關(guān)20中。參照圖2,所述裝置可以包括獲取單元21、修改單元22、合并單元23和發(fā)送單元24。該裝置的工作原理為:獲取單元21接收到客戶端的http請求(頁面請求)時,會獲取所述http請求對應(yīng)的html文件(例如頁面文件);修改單元22對html文件中可合并資源對應(yīng)的資源鏈接進(jìn)行合并,或者,在html文件中增加合并代碼,所述合并代碼用于指示客戶端對所述資源鏈接進(jìn)行合并;合并單元23獲取所述可合并資源,對獲取到的可合并資源進(jìn)行合并后緩存;發(fā)送單元24將修改后的html文件發(fā)送給客戶端,以使客戶端對該html文件進(jìn)行解析后請求合并后的資源。其中,所述獲取單元21在接收到客戶端瀏覽器的http請求時,還進(jìn)一步判斷緩存中是否存在該http請求對應(yīng)的html文件,若是,從緩存中獲取所述html文件;否則,從源網(wǎng)站獲取所述html文件。所述修改單元22對所述html文件進(jìn)行解析,獲取所述html文件中的資源鏈接,根據(jù)獲取到的資源鏈接確定可合并資源,可合并資源可以包括頁面腳本文件(如js文件)、樣式表文件(如css文件)、圖片和應(yīng)用等等。然后,通知客戶端請求合并后的資源,具體有兩種實現(xiàn)方式:方式1是直接在web代理網(wǎng)關(guān)上將可合并資源的資源鏈接進(jìn)行合并,方式2是通過增加合并代碼來通知客戶端將可合并資源的資源鏈接進(jìn)行合并。當(dāng)所述可合并資源中的部分或全部存在于本地緩存中時,所述合并單元23可以從本地緩存中獲取相應(yīng)的資源,對于不存在于本地緩存中的可合并資源,可以從源網(wǎng)站獲取。根據(jù)可合并資源中資源類型的不同,可以采用不同的合并方式,例如,對于兩個js文件,可以將其內(nèi)容寫在一個js文件中;例如,對于兩個圖片,可以按照一定方式進(jìn)行拼接,并且,還可以對拼接后的圖片進(jìn)行壓縮。本發(fā)明實施例對具體如何合并不做限制,本領(lǐng)域技術(shù)人員可以根據(jù)具體情況進(jìn)行選擇??蛻舳私邮盏叫薷暮蟮膆tml文件后,會對該html文件進(jìn)行解析,并根據(jù)合并后的資源鏈接構(gòu)造http請求,該http請求用于向web代理網(wǎng)關(guān)請求合并后的資源。由于不需要對每個資源進(jìn)行單獨(dú)請求,因此提高了網(wǎng)絡(luò)資源的訪問速度。進(jìn)一步,根據(jù)需要,如果web代理網(wǎng)關(guān)對資源的合并采用了一些特定的方式,則修改單元還在html文件中增加分解代碼,所述分解代碼用于指示客戶端對合并后的資源進(jìn)行拆解,拆解方式是與合并方式相對應(yīng)的。圖3是根據(jù)本發(fā)明一個實施例的提高網(wǎng)絡(luò)資源訪問速度的方法流程圖,所述方法應(yīng)用于web代理網(wǎng)關(guān)中(圖3中的各步驟均由web代理網(wǎng)關(guān)執(zhí)行), web代理網(wǎng)關(guān)位于客戶端和網(wǎng)站服務(wù)器之間,一個web代理網(wǎng)關(guān)可以連接一個或多個網(wǎng)站服務(wù)器,客戶端中安裝有用戶瀏覽器,網(wǎng)站服務(wù)器上存儲有一個或多個網(wǎng)頁。參照圖3,所述方法可以包括如下步驟:步驟301,接收到客戶端的http請求時,獲取所述http請求對應(yīng)的html文件;步驟302,對html文件中可合并資源對應(yīng)的資源鏈接進(jìn)行合并,或者,在html文件中增加合并代碼,所述合并代碼用于指示客戶端對所述資源鏈接進(jìn)行合并;步驟303,獲取所述可合并資源,對獲取到的可合并資源進(jìn)行合并后緩存;步驟304,將修改后的html文件發(fā)送給客戶端,以使客戶端對該html文件進(jìn)行解析后請求合并后的資源。進(jìn)一步,在步驟302中,還可以在html文件中增加分解代碼,所述分解代碼用于指示客戶端對合并后的資源進(jìn)行拆解。所述可合并資源包括:頁面腳本文件、樣式表文件、圖片和應(yīng)用等等。需要說明的是,上述流程對步驟302和步驟303的順序不做限制,例如,也可以先執(zhí)行步驟303,再執(zhí)行步驟302.以下給出一個本發(fā)明的一個應(yīng)用實例。假設(shè)Web代理網(wǎng)關(guān)接收到瀏覽器的http請求后,獲取到的html文件(合并前的html代碼)如下:通過解析可以得到,所述html文件中包括了對8個文件的引用,具體包括6個js文件和2個css文件,這些文件均為可合并資源,于是,Web代理網(wǎng)關(guān)從緩存或者這些文件所在網(wǎng)站服務(wù)器(源站)獲取文件的內(nèi)容,并將6個js文件合并成一個js文件后緩存到本地,將2個css文件合并成一個css文件后緩存到本地,并且,對這些文件對應(yīng)的資源鏈接進(jìn)行合并,資源鏈接合并后的html代碼如下:可以看出,本發(fā)明實施例將html頁面中的多個js文件和多個css文件的鏈接分別替換為一個js文件和一個css文件的鏈接,客戶端接收到修改后的 html文件后,只需對合并后的js文件(對應(yīng)于合并前的6個js文件)和合并后的css文件(對應(yīng)于合并前的2個css文件)分別進(jìn)行一次http請求,這顯然能夠提高網(wǎng)絡(luò)資源的訪問速度。需要說明的是,在附圖的流程圖示出的步驟可以在諸如設(shè)置有一組計算機(jī)可執(zhí)行指令的計算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。另外,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。