Html頁面壓縮方法及裝置的制造方法
【專利摘要】本發(fā)明揭示了一種Html頁面壓縮方法及裝置,所述方法包括:根據(jù)瀏覽器請求中的http header獲取緩存中對應(yīng)的Html頁面的靜態(tài)數(shù)據(jù)壓縮段,以及將與所述Html頁面對應(yīng)的動態(tài)數(shù)據(jù)壓縮為動態(tài)數(shù)據(jù)壓縮段;將所述靜態(tài)數(shù)據(jù)壓縮段和所述動態(tài)數(shù)據(jù)壓縮段合并為Html頁面壓縮數(shù)據(jù),并將所述Html頁面壓縮數(shù)據(jù)發(fā)送至瀏覽器。本發(fā)明可以將Html頁面上的靜態(tài)內(nèi)容預先壓縮,并緩存,當接收到瀏覽器請求時,可只將Html頁面中的動態(tài)數(shù)據(jù)的壓縮,并與靜態(tài)內(nèi)容合并后返回,如此,避免了每次請求服務(wù)器都需要進行大量的壓縮,大大降低了服務(wù)器的計算壓力。
【專利說明】
Html頁面壓縮方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,尤其是涉及一種Html頁面壓縮方法及裝置。
【背景技術(shù)】
[0002]目前的Html頁面壓縮的過程是:接收到瀏覽器的請求,服務(wù)器返回與該請求相應(yīng)的Html頁面,并對該Html頁面打點,并在打點之后進行頁面壓縮。所以目前的Html頁面壓縮,在任何一次請求時,都需要對整個頁面的數(shù)據(jù)進行壓縮,導致服務(wù)器壓力較大。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的在于提供一種Html頁面壓縮方法及裝置。
[0004]為實現(xiàn)上述發(fā)明目的之一,本發(fā)明一實施方式提供了一種Html頁面壓縮方法,所述方法包括:
[0005]根據(jù)瀏覽器請求中的http header獲取緩存中對應(yīng)的Html頁面的靜態(tài)數(shù)據(jù)壓縮段,以及將與所述Html頁面對應(yīng)的動態(tài)數(shù)據(jù)壓縮為動態(tài)數(shù)據(jù)壓縮段;
[0006]將所述靜態(tài)數(shù)據(jù)壓縮段和所述動態(tài)數(shù)據(jù)壓縮段合并為Html頁面壓縮數(shù)據(jù),并將所述Html頁面壓縮數(shù)據(jù)發(fā)送至瀏覽器。
[0007]作為本發(fā)明一實施方式的進一步改進,將所述靜態(tài)數(shù)據(jù)壓縮段和所述動態(tài)數(shù)據(jù)壓縮段合并為Html頁面壓縮數(shù)據(jù),具體包括:
[0008]將所述靜態(tài)數(shù)據(jù)壓縮段與所述動態(tài)數(shù)據(jù)壓縮段按照所述Html頁面的原始順序合并為Html頁面壓縮數(shù)據(jù)。
[0009]作為本發(fā)明一實施方式的進一步改進,所述Html頁面壓縮數(shù)據(jù)中,通過一個壓縮頭信息和一個壓縮尾信息將所述靜態(tài)數(shù)據(jù)壓縮段和所述動態(tài)數(shù)據(jù)壓縮段封裝。
[0010]作為本發(fā)明一實施方式的進一步改進,在獲取靜態(tài)數(shù)據(jù)壓縮段及壓縮動態(tài)數(shù)據(jù)前,所述方法包括:
[0011]接收瀏覽器請求;
[0012]根據(jù)所述瀏覽器請求中的http header生成對應(yīng)的Html頁面;
[0013]將所述Html頁面的靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù)剝離;
[0014]將所述靜態(tài)數(shù)據(jù)壓縮為靜態(tài)數(shù)據(jù)壓縮段并緩存。
[0015]作為本發(fā)明一實施方式的進一步改進,將所述靜態(tài)數(shù)據(jù)壓縮為靜態(tài)數(shù)據(jù)壓縮段并緩存,具體包括:
[0016]將所述靜態(tài)數(shù)據(jù)在一次壓縮請求中完成壓縮,以生成至少一個靜態(tài)數(shù)據(jù)壓縮段,并存儲所述至少一個靜態(tài)數(shù)據(jù)壓縮段。
[0017]作為本發(fā)明一實施方式的進一步改進,所述方法在對靜態(tài)數(shù)據(jù)壓縮及對動態(tài)數(shù)據(jù)壓縮時具體包括:
[0018]若所述靜態(tài)數(shù)據(jù)或所述動態(tài)數(shù)據(jù)為Html頁面的頭部數(shù)據(jù)或中部數(shù)據(jù),則調(diào)用z_full_flush函數(shù)進行壓縮;
[0019]若所述靜態(tài)數(shù)據(jù)或所述動態(tài)數(shù)據(jù)為Html頁面的尾部數(shù)據(jù),則調(diào)用z_sync_flush函數(shù)進行壓縮。
[0020]作為本發(fā)明一實施方式的進一步改進,調(diào)用z_full_flush函數(shù)對Html頁面的中部數(shù)據(jù)進行壓縮具體包括:
[0021]在Html頁面中部數(shù)據(jù)的字符串頭部加入空字符串后進行壓縮;
[0022]將在所述空字符串上形成的壓縮頭信息刪除。
[0023]作為本發(fā)明一實施方式的進一步改進,每個靜態(tài)數(shù)據(jù)壓縮段均包括字典數(shù)據(jù),以可單獨進行解壓縮。
[0024]作為本發(fā)明一實施方式的進一步改進,按照所述Html頁面的原始順序合并為Html頁面壓縮數(shù)據(jù)具體包括:
[0025]將所述靜態(tài)數(shù)據(jù)壓縮段和所述動態(tài)數(shù)據(jù)壓縮段按照字符串的順序拼裝為Html頁面壓縮數(shù)據(jù)。
[0026]作為本發(fā)明一實施方式的進一步改進,所述方法還包括:
[0027]配置Http response header,以通知瀏覽器其接收的Html頁面壓縮數(shù)據(jù)的壓縮格式。
[0028]為實現(xiàn)上述發(fā)明目的之一,本發(fā)明一實施方式提供了一種Html頁面壓縮裝置,所述裝置包括:
[0029]調(diào)取模塊,用于根據(jù)瀏覽器請求中的http header獲取緩存中對應(yīng)的Html頁面的靜態(tài)數(shù)據(jù)壓縮段;
[0030]壓縮模塊,用于將與所述Html頁面對應(yīng)的動態(tài)數(shù)據(jù)壓縮為動態(tài)數(shù)據(jù)壓縮段;
[0031]處理模塊,用于將所述靜態(tài)數(shù)據(jù)壓縮段和所述動態(tài)數(shù)據(jù)壓縮段合并為Html頁面壓縮數(shù)據(jù),并將所述Html頁面壓縮數(shù)據(jù)發(fā)送至瀏覽器。
[0032]作為本發(fā)明一實施方式的進一步改進,所述處理模塊用于:
[0033]將所述靜態(tài)數(shù)據(jù)壓縮段與所述動態(tài)數(shù)據(jù)段按照所述Html頁面的原始順序合并為Html頁面壓縮數(shù)據(jù)。
[0034]作為本發(fā)明一實施方式的進一步改進,所述Html頁面壓縮數(shù)據(jù)中,通過一個壓縮頭信息和一個壓縮尾信息將所述靜態(tài)數(shù)據(jù)壓縮段和所述動態(tài)數(shù)據(jù)壓縮段封裝。
[0035]作為本發(fā)明一實施方式的進一步改進,所述處理模塊還用于:
[0036]接收瀏覽器請求;
[0037]根據(jù)所述瀏覽器請求中的http header生成對應(yīng)的Html頁面;
[0038]將所述Html頁面的靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù)剝離;所述壓縮模塊還用于:
[0039]將所述靜態(tài)數(shù)據(jù)壓縮為靜態(tài)數(shù)據(jù)壓縮段并緩存。
[0040]作為本發(fā)明一實施方式的進一步改進,所述壓縮模塊用于將所述靜態(tài)數(shù)據(jù)在一次壓縮請求中完成壓縮,以生成至少一個靜態(tài)數(shù)據(jù)壓縮段,所述裝置還包括存儲模塊,所述存儲模塊用于:
[0041 ] 存儲所述至少一個靜態(tài)數(shù)據(jù)壓縮段。
[0042]作為本發(fā)明一實施方式的進一步改進,所述壓縮模塊用于:
[0043]若所述靜態(tài)數(shù)據(jù)或所述動態(tài)數(shù)據(jù)為Html頁面的頭部數(shù)據(jù)或中部數(shù)據(jù),則調(diào)用z_full_flush函數(shù)進行壓縮;
[0044]若所述靜態(tài)數(shù)據(jù)或所述動態(tài)數(shù)據(jù)為Html頁面的尾部數(shù)據(jù),則調(diào)用z_sync_flush函數(shù)進行壓縮。
[0045]作為本發(fā)明一實施方式的進一步改進,所述處理模塊用于:
[0046]在Html頁面中部數(shù)據(jù)的字符串頭部加入空字符串后供所述壓縮模塊進行壓縮;
[0047]將在所述空字符串上形成的壓縮頭信息刪除。
[0048]作為本發(fā)明一實施方式的進一步改進,每個靜態(tài)數(shù)據(jù)壓縮段均包括字典數(shù)據(jù),以可單獨進行解壓縮。
[0049]作為本發(fā)明一實施方式的進一步改進,所述處理模塊用于:
[0050]將所述靜態(tài)數(shù)據(jù)壓縮段和所述動態(tài)數(shù)據(jù)壓縮段按照字符串的順序拼裝為Html頁面壓縮數(shù)據(jù)。
[0051]作為本發(fā)明一實施方式的進一步改進,所述裝置還包括配置模塊,用于:
[0052]配置Http response header,以通知瀏覽器其接收的Html頁面壓縮數(shù)據(jù)的壓縮格式。
[0053]相對于現(xiàn)有技術(shù),本發(fā)明的技術(shù)效果在于:本發(fā)明的Html頁面壓縮方法及裝置可以將Html頁面上的靜態(tài)內(nèi)容預先壓縮,并緩存,當接收到瀏覽器請求時,可只將Html頁面中的動態(tài)數(shù)據(jù)的壓縮,并與靜態(tài)內(nèi)容合并后返回,如此,避免了每次請求服務(wù)器都需要進行大量的壓縮,大大降低了服務(wù)器的計算壓力。
【附圖說明】
[0054]圖1是本發(fā)明一實施方式中Html頁面壓縮方法的流程圖;
[0055]圖2是本發(fā)明一實施方式中服務(wù)器接收瀏覽器請求后,對該請求進行反饋的完整工作流程圖;
[0056]圖3是本發(fā)明一實施方式中Html頁面壓縮方法的示意圖;
[0057]圖4是本發(fā)明一實施方式中Html頁面壓縮裝置的模塊圖。
【具體實施方式】
[0058]以下將結(jié)合附圖所示的【具體實施方式】對本發(fā)明進行詳細描述。但這些實施方式并不限制本發(fā)明,本領(lǐng)域的普通技術(shù)人員根據(jù)這些實施方式所做出的結(jié)構(gòu)、方法、或功能上的變換均包含在本發(fā)明的保護范圍內(nèi)。
[0059]如圖1所示,本發(fā)明一實施方式中,所述Html頁面壓縮方法包括:
[0060]根據(jù)瀏覽器請求中的http header獲取緩存中對應(yīng)的Html頁面的靜態(tài)數(shù)據(jù)壓縮段,以及將與所述Html頁面對應(yīng)的動態(tài)數(shù)據(jù)壓縮為動態(tài)數(shù)據(jù)壓縮段;
[0061]將所述靜態(tài)數(shù)據(jù)壓縮段和所述動態(tài)數(shù)據(jù)壓縮段合并為Html頁面壓縮數(shù)據(jù),并將所述Html頁面壓縮數(shù)據(jù)發(fā)送至瀏覽器。
[0062]通過圖1對應(yīng)的上述流程,可以將Html頁面上的靜態(tài)內(nèi)容預先壓縮,并緩存,當接收到瀏覽器請求時,可只將Html頁面中的動態(tài)數(shù)據(jù)的壓縮,并與靜態(tài)內(nèi)容合并后返回,如此,與現(xiàn)有技術(shù)相比避免了每次請求服務(wù)器都需要進行大量的壓縮,從而大大降低了服務(wù)器的計算壓力。
[0063]如圖2所示,在一具體的示例中,通常地,服務(wù)器在接收到瀏覽器請求后,會首先經(jīng)過一些公用代碼,比如cookie判定。接著,判定瀏覽器是否接受壓縮數(shù)據(jù),如果不接受, 則直接產(chǎn)生Html頁面,并返回至瀏覽器。如果瀏覽器接受壓縮數(shù)據(jù),則可采用本發(fā)明一實施方式的Html頁面壓縮方法,以形成Html頁面壓縮數(shù)據(jù)后再返回瀏覽器。
[0064]具體地,服務(wù)器接收瀏覽器請求,并根據(jù)瀏覽器請求中的http header包含的一些關(guān)鍵字段,比如說user-agent中的關(guān)鍵數(shù)據(jù)或者locale,調(diào)取緩存中相應(yīng)的靜態(tài)數(shù)據(jù)壓縮段。此時,存在兩種可能:
[0065]1)緩存中存在對應(yīng)的靜態(tài)數(shù)據(jù)壓縮段。
[0066]此時,可獲取緩存中的靜態(tài)數(shù)據(jù)壓縮段,并將與所述Html頁面對應(yīng)的動態(tài)數(shù)據(jù)壓縮為動態(tài)數(shù)據(jù)壓縮段。
[0067]Html頁面數(shù)據(jù)包括頭部數(shù)據(jù)、中部數(shù)據(jù)和尾部數(shù)據(jù)。其中,所述的頭部數(shù)據(jù)、中部數(shù)據(jù)和尾部數(shù)據(jù)可分別對應(yīng)至靜態(tài)數(shù)據(jù)或動態(tài)數(shù)據(jù)。
[0068]進一步地,在對靜態(tài)數(shù)據(jù)壓縮及對動態(tài)數(shù)據(jù)壓縮時具體包括:
[0069]若所述靜態(tài)數(shù)據(jù)或所述動態(tài)數(shù)據(jù)為Html頁面的頭部數(shù)據(jù)或中部數(shù)據(jù),則調(diào)用z_ full_flush函數(shù)進行壓縮;
[0070]若所述靜態(tài)數(shù)據(jù)或所述動態(tài)數(shù)據(jù)為Html頁面的尾部數(shù)據(jù),則調(diào)用z_sync_flush 函數(shù)進行壓縮。
[0071]這里,為了描述的簡潔,以頭部數(shù)據(jù)和尾部數(shù)據(jù)對應(yīng)靜態(tài)數(shù)據(jù)、中部數(shù)據(jù)對應(yīng)動態(tài)數(shù)據(jù)為例對此時動態(tài)數(shù)據(jù)的壓縮做詳細的闡述:
[0072]調(diào)用z_full_flush函數(shù)對Html頁面中部數(shù)據(jù)(動態(tài)數(shù)據(jù))進行壓縮。此處,需要調(diào)用z_full_flush函數(shù)對所述中部數(shù)據(jù)進行壓縮的原因是,若對于Html中的中部數(shù)據(jù)使用默認的壓縮方式進行壓縮,則返回的是壓縮包都是完整的。例如,若直接使用JDK中的DEFLATEOutputStream來實現(xiàn)中部數(shù)據(jù)的壓縮,那么每個壓縮包都會攜帶完整DEFLATE 頭和尾信息。而對于某些瀏覽器來說,這些多個完整的壓縮包并不能被識別。所以在java 環(huán)境中,弓I 入 zlib 的一個 java 實現(xiàn)版本:jzlib (http://www.1craft.com/ izlib/,為本領(lǐng)域普通技術(shù)人員的公知常識,在此不再對其進行贅述),jzlib中支持壓縮中的flush_ mode (jzlib),故本實施方式中可相應(yīng)地調(diào)用jzlib的z_full_flush函數(shù)對所述中部數(shù)據(jù)進行壓縮以得到相應(yīng)的動態(tài)數(shù)據(jù)壓縮段。
[0073]具體的壓縮過程中:首先在中部數(shù)據(jù)(動態(tài)數(shù)據(jù))的字符串頭部加入空字符串后進行壓縮,這時,得到的壓縮文件中會包含一個在所述空字符串上形成的壓縮頭信息;并進一步將在所述空字符串上形成的壓縮頭信息刪除,以便于進行接著的“數(shù)據(jù)壓縮段的合并”,此部分內(nèi)容將在下文做詳細的闡述。
[0074]2)緩存中不存在對應(yīng)的靜態(tài)數(shù)據(jù)壓縮段。
[0075]這種情況下,表示緩存的數(shù)據(jù)已經(jīng)過期,或者服務(wù)器啟動之后,對該Html頁面的請求第一次到來,所以緩存為空。此時,根據(jù)本發(fā)明的一實施方式:
[0076]首先接收瀏覽器請求,并根據(jù)所述瀏覽器請求中的http header生成對應(yīng)的Html 頁面,再將所述Html頁面的靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù)剝離,并將所述靜態(tài)數(shù)據(jù)壓縮為靜態(tài)數(shù)據(jù)壓縮段并緩存。通常地,這里利用http header中包含的關(guān)鍵數(shù)據(jù),例如user-agent中的關(guān)鍵信息(示范性地:判定需要返回的瀏覽器是應(yīng)用于PC還是移動電話)生成對應(yīng)的Html 頁面。
[0077]這里,靜態(tài)數(shù)據(jù)在一次壓縮請求中完成壓縮。為提高壓縮效率,本實施方式,可在一次請求中,執(zhí)行對同一 Html頁面數(shù)據(jù)中的多個分離的靜態(tài)數(shù)據(jù)的進行多次壓縮。并且, 同步對此時壓縮而成的靜態(tài)數(shù)據(jù)壓縮段進行存儲,存儲的周期可以根據(jù)Html的更新情況進行設(shè)定,以便在一個周期后,可以對該靜態(tài)數(shù)據(jù)壓縮段進行更新。
[0078]同樣類似地以頭部數(shù)據(jù)和尾部數(shù)據(jù)對應(yīng)靜態(tài)數(shù)據(jù)、中部數(shù)據(jù)對應(yīng)動態(tài)數(shù)據(jù)為例對此時動態(tài)數(shù)據(jù)和靜態(tài)數(shù)據(jù)的壓縮做詳細的闡述:
[0079]調(diào)用jzlib的z_full_flush函數(shù)對Html頁面頭部數(shù)據(jù)(靜態(tài)數(shù)據(jù))和中部數(shù)據(jù)(動態(tài)數(shù)據(jù))進行壓縮、且調(diào)用jzlib的z_sync_flush函數(shù)對Html頁面尾部數(shù)據(jù) (靜態(tài)數(shù)據(jù))進行壓縮。此處,需要調(diào)用z_full_flush函數(shù)、z_sync_flush函數(shù)對相應(yīng)的所述頭部數(shù)據(jù)、中部數(shù)據(jù)和尾部數(shù)據(jù)進行壓縮的原因是,若對于Html中的數(shù)據(jù)使用默認的壓縮方式進行壓縮,則返回的是每個壓縮包都是完整的。例如,若直接使用JDK中的 DEFLATEOutputStream來實現(xiàn)各部分數(shù)據(jù)的壓縮,那么每個壓縮包都會攜帶完整DEFLATE 頭和尾信息。而對于某些瀏覽器來說,這些多個完整的壓縮包并不能被識別。所以在 java環(huán)境中,引入zlib的一個java實現(xiàn)版本:jzlib,jzlib中支持壓縮中的flush_ mode (jzlib),故本實施方式中相應(yīng)地調(diào)用z_full_flush函數(shù)和z_sync_flush函數(shù)對上述的各部分數(shù)據(jù)進行壓縮以得到靜態(tài)數(shù)據(jù)壓縮段和動態(tài)數(shù)據(jù)壓縮段。
[0080]進一步地,在本實施方式中,所述“將所述靜態(tài)數(shù)據(jù)壓縮段和所述動態(tài)數(shù)據(jù)壓縮段合并為Html頁面壓縮數(shù)據(jù)”具體包括:
[0081]將所述靜態(tài)數(shù)據(jù)壓縮段與所述動態(tài)數(shù)據(jù)壓縮段按照所述Html頁面的原始順序合并為Html頁面壓縮數(shù)據(jù)。
[0082]『按照Html頁面的原始順序』是指將靜態(tài)數(shù)據(jù)壓縮段和動態(tài)數(shù)據(jù)壓縮段按照字符串的順序拼裝為Html頁面壓縮數(shù)據(jù)。此時,由于Html頁面上的靜態(tài)內(nèi)容已經(jīng)被預先壓縮和緩存,故避免了每次請求服務(wù)器都需要進行大量的重復壓縮,大大降低了服務(wù)器的計算壓力。示范性地,這里的動態(tài)數(shù)據(jù)為打點數(shù)據(jù)。
[0083]進一步地,為了使更多瀏覽器可識別該Html頁面壓縮數(shù)據(jù),所述Html頁面壓縮數(shù)據(jù)中,通過一個壓縮頭信息和一個壓縮尾信息將所述靜態(tài)數(shù)據(jù)壓縮段和所述動態(tài)數(shù)據(jù)壓縮段封裝。
[0084]如圖3所示,以一個Html頁面包括兩個靜態(tài)數(shù)據(jù)壓縮段:DEFLATE Data A(頭部數(shù)據(jù)壓縮段)、DEFLATE Data C (尾部數(shù)據(jù)壓縮段)和一個動態(tài)數(shù)據(jù)壓縮段:DEFLATE Data B(中部數(shù)據(jù)壓縮段)為例。DEFLATE Data A *z_full_flush函數(shù)壓縮而成,其包含一個 DEFLATE Header,DEFLATE Data C*z_sync_flush 函數(shù)壓縮而成,其包含一個 DEFLATE Tail。DEFLATE Data B*z_full_flush 函數(shù)壓縮而成,在 DEFLATE Data B 的壓縮過程中, 在其對應(yīng)的字符串頭部插入空字符串,并在壓縮后再將在該空字符串上形成的壓縮頭信息刪除。如此,DEFLATE Data A、DEFLATE Data B、DEFLATE Data C可以順序合并成一個完整的Html頁面壓縮數(shù)據(jù)。
[0085]當然,在示范性的一替換的實施方式中,DEFLATE Data B也可以是由z_sync_ flush函數(shù)壓縮而成,相應(yīng)地,在DEFLATE Data B的壓縮過程中,在其對應(yīng)的字符串尾部插入空字符串,并在壓縮后再將在該空字符串上形成的壓縮尾信息刪除。如此,同樣可以將 DEFLATE Data A、DEFLATE Data B、DEFLATE Data C 順序合并成一個完整的 Html 頁面壓縮數(shù)據(jù)。
[0086]在本實施方式中,每個靜態(tài)數(shù)據(jù)壓縮段均包括字典數(shù)據(jù),而并非使用第一壓縮段的字典數(shù)據(jù),以可單獨進行解壓縮。
[0087]最后,再將上述的Html頁面壓縮數(shù)據(jù)發(fā)送至瀏覽器。在此過程中,先配置Http response header,以通知瀏覽器其接收的Html頁面壓縮數(shù)據(jù)的壓縮格式,再將Html頁面壓縮數(shù)據(jù)放入response的緩沖區(qū)。緩沖區(qū)將Html頁面壓縮數(shù)據(jù)再最終返回至瀏覽器以完成整個Html頁面發(fā)送至瀏覽器的過程。
[0088]在一個本發(fā)明Html頁面壓縮方法的java版方案實現(xiàn)示例中,預先生成了 a_html 和c_html,這兩個頁面中間還有一部分動態(tài)數(shù)據(jù)。先把a_html和c_html壓縮并放入緩存, 然后每次請求來時從緩存調(diào)取該靜態(tài)壓縮數(shù)據(jù),而緩存如果沒有,則重新動態(tài)生成靜態(tài)壓縮數(shù)據(jù);接著產(chǎn)生動態(tài)數(shù)據(jù)并壓縮,然后設(shè)置HTTP response header,最后按照頁面的原始順序?qū)嚎s包刷入response的緩沖區(qū)。
[0089]值得注意的是,在壓縮動態(tài)數(shù)據(jù)的過程中,無需每次都創(chuàng)建ZStream,只需要為每條線程創(chuàng)建一次,即可重復使用。通過這樣的方式,一個數(shù)百KB的頁面,少量的動態(tài)數(shù)據(jù)將會被實施壓縮,絕大部分的數(shù)據(jù)會被預先壓縮之后,后續(xù)請求過來無需再次壓縮,成功地避免了很多重復計算。
[0090]如圖4所示,在本發(fā)明一實施方式中,所述Html頁面壓縮裝置100包括調(diào)取模塊 10、壓縮模塊20、以及處理模塊30。
[0091]所述調(diào)取模塊10用于根據(jù)瀏覽器請求中的http header獲取緩存中對應(yīng)的Html 頁面的靜態(tài)數(shù)據(jù)壓縮段;
[0092]所述壓縮模塊20用于將與所述Html頁面對應(yīng)的動態(tài)數(shù)據(jù)壓縮為動態(tài)數(shù)據(jù)壓縮段;
[0093]所述處理模塊30用于將所述靜態(tài)數(shù)據(jù)壓縮段和所述動態(tài)數(shù)據(jù)壓縮段合并為Html 頁面壓縮數(shù)據(jù),并將所述Html頁面壓縮數(shù)據(jù)發(fā)送至瀏覽器。
[0094]在一具體的示例中,通常地,服務(wù)器在接收到瀏覽器請求后,會首先經(jīng)過一些公用代碼,比如cookie判定。接著,判定瀏覽器是否接受壓縮數(shù)據(jù),如果不接受,則直接產(chǎn)生Html頁面,并返回至瀏覽器。如果瀏覽器接受壓縮數(shù)據(jù),則可采用本發(fā)明一實施方式的 Html頁面壓縮裝置,以形成Html頁面壓縮數(shù)據(jù)后再返回瀏覽器。
[0095]具體地,服務(wù)器接收瀏覽器請求,并根據(jù)瀏覽器請求中的http header包含的一些關(guān)鍵字段,比如說user-agent中的關(guān)鍵數(shù)據(jù)或者locale,調(diào)取緩存中相應(yīng)的靜態(tài)數(shù)據(jù)壓縮段。此時,存在兩種可能:
[0096]1)緩存中存在對應(yīng)的靜態(tài)數(shù)據(jù)壓縮段。
[0097]此時,可獲取緩存中的靜態(tài)數(shù)據(jù)壓縮段,并將與所述Html頁面對應(yīng)的動態(tài)數(shù)據(jù)壓縮為動態(tài)數(shù)據(jù)壓縮段。
[0098]Html頁面數(shù)據(jù)包括頭部數(shù)據(jù)、中部數(shù)據(jù)和尾部數(shù)據(jù)。其中,所述的頭部數(shù)據(jù)、中部數(shù)據(jù)和尾部數(shù)據(jù)可分別對應(yīng)至靜態(tài)數(shù)據(jù)或動態(tài)數(shù)據(jù)。
[0099]所述壓縮模塊20用于:[〇1〇〇]若所述靜態(tài)數(shù)據(jù)或所述動態(tài)數(shù)據(jù)為Html頁面的頭部數(shù)據(jù)或中部數(shù)據(jù),則調(diào)用z_full_flush函數(shù)進行壓縮;
[0101]若所述靜態(tài)數(shù)據(jù)或所述動態(tài)數(shù)據(jù)為Html頁面的尾部數(shù)據(jù),則調(diào)用z_sync_flush函數(shù)進行壓縮。[〇1〇2]這里,為了描述的簡潔,以頭部數(shù)據(jù)和尾部數(shù)據(jù)對應(yīng)靜態(tài)數(shù)據(jù)、中部數(shù)據(jù)對應(yīng)動態(tài)數(shù)據(jù)為例對此時動態(tài)數(shù)據(jù)的壓縮做詳細的闡述:
[0103]壓縮模塊20調(diào)用z_full_flush函數(shù)對Html頁面中部數(shù)據(jù)(動態(tài)數(shù)據(jù))進行壓縮。此處,需要調(diào)用z_full_flush函數(shù)對所述中部數(shù)據(jù)進行壓縮的原因是,若對于Html中的中部數(shù)據(jù)使用默認的壓縮方式進行壓縮,則返回的是壓縮包都是完整的。例如,若直接使用JDK中的DEFLATEOutputStream來實現(xiàn)中部數(shù)據(jù)的壓縮,那么每個壓縮包都會攜帶完整DEFLATE頭和尾信息。而對于某些瀏覽器來說,這些多個完整的壓縮包并不能被識別。 所以在 java 環(huán)境中,引入 zlib 的一個 java 實現(xiàn)版本:jzlib (http://www.1craft.com/.1zlib/,為本領(lǐng)域普通技術(shù)人員的公知常識,在此不再對其進行贅述),jzlib中支持壓縮中的flush_mode (jzlib),故本實施方式中可相應(yīng)地調(diào)用jzlib的z_full_flush函數(shù)對所述中部數(shù)據(jù)進行壓縮以得到相應(yīng)的動態(tài)數(shù)據(jù)壓縮段。
[0104]具體的壓縮過程中:處理模塊30首先在中部數(shù)據(jù)(動態(tài)數(shù)據(jù))的字符串頭部加入空字符串后供壓縮模塊20進行壓縮,這時,得到的壓縮文件中會包含一個在所述空字符串上形成的壓縮頭信息;處理模塊30進一步將在所述空字符串上形成的壓縮頭信息刪除,以便于進行接著的“數(shù)據(jù)壓縮段的合并”,此部分內(nèi)容將在下文做詳細的闡述。
[0105]2)緩存中不存在對應(yīng)的靜態(tài)數(shù)據(jù)壓縮段。
[0106]這種情況下,表示緩存的數(shù)據(jù)已經(jīng)過期,或者服務(wù)器啟動之后,對該Html頁面的請求第一次到來,所以緩存為空。此時,根據(jù)本發(fā)明的一實施方式:
[0107]處理模塊30用于首先接收瀏覽器請求,并根據(jù)所述瀏覽器請求中的http header 生成對應(yīng)的Html頁面,再將所述Html頁面的靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù)剝離,壓縮模塊20用于將所述靜態(tài)數(shù)據(jù)壓縮為靜態(tài)數(shù)據(jù)壓縮段并緩存。通常地,這里利用http header中包含的關(guān)鍵數(shù)據(jù),例如user-agent中的關(guān)鍵信息(示范性地:判定需要返回的瀏覽器是應(yīng)用于PC 還是移動電話)生成對應(yīng)的Html頁面。
[0108]這里,靜態(tài)數(shù)據(jù)在一次壓縮請求中對多個靜態(tài)完成壓縮。為提高效率,本實施方式中,可在一次壓縮請求中,執(zhí)行對同一 Html頁面數(shù)據(jù)中的多個分離的靜態(tài)數(shù)據(jù)的多次壓縮。并且,存儲模塊40同步對此時壓縮而成的靜態(tài)數(shù)據(jù)壓縮段進行存儲,存儲的周期可以根據(jù)Html的更新情況進行設(shè)定,以便在一個周期后,可以對該靜態(tài)數(shù)據(jù)壓縮段進行更新。
[0109]同樣類似地以頭部數(shù)據(jù)和尾部數(shù)據(jù)對應(yīng)靜態(tài)數(shù)據(jù)、中部數(shù)據(jù)對應(yīng)動態(tài)數(shù)據(jù)為例對此時動態(tài)數(shù)據(jù)和靜態(tài)數(shù)據(jù)的壓縮做詳細的闡述:
[0110]調(diào)用jzlib的z_full_flush函數(shù)對Html頁面頭部數(shù)據(jù)(靜態(tài)數(shù)據(jù))和中部數(shù)據(jù)(動態(tài)數(shù)據(jù))進行壓縮、且調(diào)用jzlib的z_sync_flush函數(shù)對Html頁面尾部數(shù)據(jù) (靜態(tài)數(shù)據(jù))進行壓縮。此處,需要調(diào)用z_full_flush函數(shù)、z_sync_flush函數(shù)對相應(yīng)的所述頭部數(shù)據(jù)、中部數(shù)據(jù)和尾部數(shù)據(jù)進行壓縮的原因是,若對于Html中的數(shù)據(jù)使用默認的壓縮方式進行壓縮,則返回的是每個壓縮包都是完整的。例如,若直接使用JDK中的 DEFLATEOutputStream來實現(xiàn)各部分數(shù)據(jù)的壓縮,那么每個壓縮包都會攜帶完整DEFLATE 頭和尾信息。而對于某些瀏覽器來說,這些多個完整的壓縮包并不能被識別。所以在 java環(huán)境中,引入zlib的一個java實現(xiàn)版本:jzlib,jzlib中支持壓縮中的flush_mode (jzlib),故本實施方式中相應(yīng)地調(diào)用z_full_flush函數(shù)和z_sync_flush函數(shù)對上述的各部分數(shù)據(jù)進行壓縮以得到靜態(tài)數(shù)據(jù)壓縮段和動態(tài)數(shù)據(jù)壓縮段。
[0111]進一步地,在本實施方式中,處理模塊30還用于:
[0112]將所述靜態(tài)數(shù)據(jù)壓縮段與所述動態(tài)數(shù)據(jù)壓縮段按照所述Html頁面的原始順序合并為Html頁面壓縮數(shù)據(jù)。
[0113]『按照Html頁面的原始順序』是指處理模塊30將靜態(tài)數(shù)據(jù)壓縮段和動態(tài)數(shù)據(jù)壓縮段按照字符串的順序拼裝為Html頁面壓縮數(shù)據(jù)。此時,由于Html頁面上的靜態(tài)內(nèi)容已經(jīng)被預先壓縮和緩存,故避免了每次請求服務(wù)器都需要進行大量的重復壓縮,大大降低了服務(wù)器的計算壓力。示范性地,這里的動態(tài)數(shù)據(jù)為打點數(shù)據(jù)。
[0114]進一步地,為了使更多瀏覽器可識別該Html頁面壓縮數(shù)據(jù),在Html頁面壓縮數(shù)據(jù)中,是通過一個壓縮頭信息和一個壓縮尾信息將靜態(tài)數(shù)據(jù)壓縮段和動態(tài)數(shù)據(jù)壓縮段封裝。
[0115]如圖3所示,以一個Html頁面包括兩個靜態(tài)數(shù)據(jù)壓縮段:DEFLATE Data A(頭部數(shù)據(jù)壓縮段)、DEFLATE Data C (尾部數(shù)據(jù)壓縮段)和一個動態(tài)數(shù)據(jù)壓縮段:DEFLATE Data B(中部數(shù)據(jù)壓縮段)為例。DEFLATE Data A *z_full_flush函數(shù)壓縮而成,其包含一個 DEFLATE Header,DEFLATE Data C*z_sync_flush 函數(shù)壓縮而成,其包含一個 DEFLATE Tail。DEFLATE Data B*z_full_flush 函數(shù)壓縮而成,在 DEFLATE Data B 的壓縮過程中, 在其對應(yīng)的字符串頭部插入空字符串,并在壓縮后再將在該空字符串上形成的壓縮頭信息刪除。如此,DEFLATE Data A、DEFLATE Data B、DEFLATE Data C可以順序合并成一個完整的Html頁面壓縮數(shù)據(jù)。
[0116]當然,在示范性的一替換的實施方式中,DEFLATE Data B也可以是由壓縮模塊20 調(diào)用z_sync_flush函數(shù)壓縮而成,相應(yīng)地,在DEFLATE Data B的壓縮過程中,處理模塊30 在其對應(yīng)的字符串尾部插入空字符串,并在壓縮后再將在該空字符串上形成的壓縮尾信息刪除。如此,同樣可以將DEFLATE Data A、DEFLATE Data B、DEFLATE Data C順序合并成一個完整的Html頁面壓縮數(shù)據(jù)。
[0117]在本實施方式中,每個靜態(tài)數(shù)據(jù)壓縮段均包括字典數(shù)據(jù),而并非使用第一壓縮段的字典數(shù)據(jù),以可單獨進行解壓縮。
[0118]最后,處理模塊30再將上述的Html頁面壓縮數(shù)據(jù)發(fā)送至瀏覽器。在此過程中,配置模塊50首先為Html頁面壓縮數(shù)據(jù)配置Http response header,以通知瀏覽器其接收的 Html頁面壓縮數(shù)據(jù)的壓縮格式,處理模塊30再將Html頁面壓縮數(shù)據(jù)放入response的緩沖區(qū)。緩沖區(qū)將壓縮Html頁面壓縮數(shù)據(jù)再最終返回至瀏覽器以完成整個Html頁面發(fā)送至瀏覽器的過程。
[0119]需要說明的是,上述的調(diào)取模塊10、壓縮模塊20、處理模塊30、存儲模塊40、和配置模塊50都為根據(jù)邏輯功能的一種示范性的劃分,實際的應(yīng)用中,可能是由代理服務(wù)器、 或應(yīng)用服務(wù)器、或代理服務(wù)器和應(yīng)用服務(wù)器協(xié)同實現(xiàn)上述實施方式中各模塊的功能,而上述的各模塊也可以相應(yīng)地被視為共同構(gòu)成所述代理服務(wù)器和應(yīng)用服務(wù)器的至少部分。
[0120]綜上所述,本發(fā)明的Html頁面壓縮方法及裝置可以將Html頁面上的靜態(tài)內(nèi)容預先壓縮,并緩存,當接收到瀏覽器請求時,可只將Html頁面中的動態(tài)數(shù)據(jù)的壓縮,并與靜態(tài)內(nèi)容合并后返回,如此,避免了每次請求服務(wù)器都需要進行大量的壓縮,大大降低了服務(wù)器的計算壓力。
[0121]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的裝置, 裝置和模塊的具體工作過程,可以參考前述方法實施方式中的對應(yīng)過程,在此不再贅述。
[0122]綜上所述,本發(fā)明的Html頁面壓縮方法及裝置可以將Html頁面上的靜態(tài)內(nèi)容預先壓縮,并緩存,當接收到瀏覽器請求時,可只將Html頁面中的動態(tài)數(shù)據(jù)的壓縮,并與靜態(tài)內(nèi)容合并后返回,如此,避免了每次請求服務(wù)器都需要進行大量的壓縮,大大降低了服務(wù)器的計算壓力。
[0123]在本發(fā)明所提供的幾個實施方式中,應(yīng)該理解到,所揭露的裝置,裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施方式僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個模塊或組件可以結(jié)合或者可以集成到另一個裝置,或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或模塊的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0124]所述作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者也可以不是物理模塊,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)模塊上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施方式方案的目的。
[0125]另外,在本發(fā)明各個實施方式中的各功能模塊可以集成在一個處理模塊中,也可以是各個模塊單獨物理存在,也可以2個或2個以上模塊集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能模塊的形式實現(xiàn)。
[0126]上述以軟件功能模塊的形式實現(xiàn)的集成的模塊,可以存儲在一個計算機可讀取存儲介質(zhì)中。上述軟件功能模塊存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機裝置(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)裝置等)或處理器(processor)執(zhí)行本發(fā)明各個實施方式所述方法的部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器 (Read-Only Memory,ROM)、隨機存取存儲器(Random Access Memory,RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0127]最后應(yīng)說明的是:以上實施方式僅用以說明本發(fā)明的技術(shù)方案,而非對其限制; 盡管參照前述實施方式對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施方式所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施方式技術(shù)方案的精神和范圍。
【主權(quán)項】
1.一種Html頁面壓縮方法,其特征在于,所述方法包括: 根據(jù)瀏覽器請求中的http header獲取緩存中對應(yīng)的Html頁面的靜態(tài)數(shù)據(jù)壓縮段,以及將與所述Html頁面對應(yīng)的動態(tài)數(shù)據(jù)壓縮為動態(tài)數(shù)據(jù)壓縮段; 將所述靜態(tài)數(shù)據(jù)壓縮段和所述動態(tài)數(shù)據(jù)壓縮段合并為Html頁面壓縮數(shù)據(jù),并將所述Html頁面壓縮數(shù)據(jù)發(fā)送至瀏覽器。2.根據(jù)權(quán)利要求1所述的Html頁面壓縮方法,其特征在于,將所述靜態(tài)數(shù)據(jù)壓縮段和所述動態(tài)數(shù)據(jù)壓縮段合并為Html頁面壓縮數(shù)據(jù),具體包括: 將所述靜態(tài)數(shù)據(jù)壓縮段與所述動態(tài)數(shù)據(jù)壓縮段按照所述Html頁面的原始順序合并為Html頁面壓縮數(shù)據(jù)。3.根據(jù)權(quán)利要求1或2所述的Html頁面壓縮方法,其特征在于,所述Html頁面壓縮數(shù)據(jù)中,通過一個壓縮頭信息和一個壓縮尾信息將所述靜態(tài)數(shù)據(jù)壓縮段和所述動態(tài)數(shù)據(jù)壓縮段封裝。4.根據(jù)權(quán)利要求1所述的Html頁面壓縮方法,其特征在于,在獲取靜態(tài)數(shù)據(jù)壓縮段及壓縮動態(tài)數(shù)據(jù)前,所述方法包括: 接收瀏覽器請求; 根據(jù)所述瀏覽器請求中的http header生成對應(yīng)的Html頁面; 將所述Html頁面的靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù)剝離; 將所述靜態(tài)數(shù)據(jù)壓縮為靜態(tài)數(shù)據(jù)壓縮段并緩存。5.根據(jù)權(quán)利要求4所述的Html頁面壓縮方法,其特征在于,將所述靜態(tài)數(shù)據(jù)壓縮為靜態(tài)數(shù)據(jù)壓縮段并緩存,具體包括: 將所述靜態(tài)數(shù)據(jù)在一次壓縮請求中完成壓縮,以生成至少一個靜態(tài)數(shù)據(jù)壓縮段,并存儲所述至少一個靜態(tài)數(shù)據(jù)壓縮段。6.根據(jù)權(quán)利要求4所述的Html頁面壓縮方法,其特征在于,所述方法在對靜態(tài)數(shù)據(jù)壓縮及對動態(tài)數(shù)據(jù)壓縮時,具體包括: 若所述靜態(tài)數(shù)據(jù)或所述動態(tài)數(shù)據(jù)為Html頁面的頭部數(shù)據(jù)或中部數(shù)據(jù),則調(diào)用z_full_flush函數(shù)進行壓縮; 若所述靜態(tài)數(shù)據(jù)或所述動態(tài)數(shù)據(jù)為Html頁面的尾部數(shù)據(jù),則調(diào)用z_Sync_flUSh函數(shù)進行壓縮。7.根據(jù)權(quán)利要求6所述的Html頁面壓縮方法,其特征在于,調(diào)用z_full_flush函數(shù)對Html頁面的中部數(shù)據(jù)進行壓縮,具體包括: 在Html頁面中部數(shù)據(jù)的字符串頭部加入空字符串后進行壓縮; 將在所述空字符串上形成的壓縮頭信息刪除。8.根據(jù)權(quán)利要求1所述的Html頁面壓縮方法,其特征在于,每個靜態(tài)數(shù)據(jù)壓縮段均包括字典數(shù)據(jù),以可單獨進行解壓縮。9.根據(jù)權(quán)利要求2所述的Html頁面壓縮方法,其特征在于,按照所述Html頁面的原始順序合并為Html頁面壓縮數(shù)據(jù),具體包括: 將所述靜態(tài)數(shù)據(jù)壓縮段和所述動態(tài)數(shù)據(jù)壓縮段按照字符串的順序拼裝為Html頁面壓縮數(shù)據(jù)。10.根據(jù)權(quán)利要求1所述的Html頁面壓縮方法,其特征在于,所述方法還包括: 配置Http response header,以通知瀏覽器其接收的Html頁面壓縮數(shù)據(jù)的壓縮格式。11.一種Html頁面壓縮裝置,其特征在于,所述裝置包括: 調(diào)取模塊,用于根據(jù)瀏覽器請求中的http header獲取緩存中對應(yīng)的Html頁面的靜態(tài)數(shù)據(jù)壓縮段; 壓縮模塊,用于將與所述Html頁面對應(yīng)的動態(tài)數(shù)據(jù)壓縮為動態(tài)數(shù)據(jù)壓縮段; 處理模塊,用于將所述靜態(tài)數(shù)據(jù)壓縮段和所述動態(tài)數(shù)據(jù)壓縮段合并為Html頁面壓縮數(shù)據(jù),并將所述Html頁面壓縮數(shù)據(jù)發(fā)送至瀏覽器。12.根據(jù)權(quán)利要求11所述的Html頁面壓縮裝置,其特征在于,所述處理模塊用于: 將所述靜態(tài)數(shù)據(jù)壓縮段與所述動態(tài)數(shù)據(jù)段按照所述Html頁面的原始順序合并為Html頁面壓縮數(shù)據(jù)。13.根據(jù)權(quán)利要求11或12所述的Html頁面壓縮裝置,其特征在于,所述Html頁面壓縮數(shù)據(jù)中,通過一個壓縮頭信息和一個壓縮尾信息將所述靜態(tài)數(shù)據(jù)壓縮段和所述動態(tài)數(shù)據(jù)壓縮段封裝。14.根據(jù)權(quán)利要求11所述的Html頁面壓縮裝置,其特征在于,所述處理模塊還用于: 接收瀏覽器請求; 根據(jù)所述瀏覽器請求中的http header生成對應(yīng)的Html頁面; 將所述Html頁面的靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù)剝離;所述壓縮模塊還用于: 將所述靜態(tài)數(shù)據(jù)壓縮為靜態(tài)數(shù)據(jù)壓縮段并緩存。15.根據(jù)權(quán)利要求14所述的Html頁面壓縮裝置,其特征在于,所述壓縮模塊用于將所述靜態(tài)數(shù)據(jù)在一次壓縮請求中完成壓縮,以生成至少一個靜態(tài)數(shù)據(jù)壓縮段,所述裝置還包括存儲模塊,所述存儲模塊用于: 存儲所述至少一個靜態(tài)數(shù)據(jù)壓縮段。16.根據(jù)權(quán)利要求14所述的Html頁面壓縮裝置,其特征在于,所述壓縮模塊用于: 若所述靜態(tài)數(shù)據(jù)或所述動態(tài)數(shù)據(jù)為Html頁面的頭部數(shù)據(jù)或中部數(shù)據(jù),則調(diào)用z_full_flush函數(shù)進行壓縮; 若所述靜態(tài)數(shù)據(jù)或所述動態(tài)數(shù)據(jù)為Html頁面的尾部數(shù)據(jù),則調(diào)用z_Sync_flUSh函數(shù)進行壓縮。17.根據(jù)權(quán)利要求16所述的Html頁面壓縮裝置,其特征在于,所述處理模塊用于: 在Html頁面中部數(shù)據(jù)的字符串頭部加入空字符串后供所述壓縮模塊進行壓縮; 將在所述空字符串上形成的壓縮頭信息刪除。18.根據(jù)權(quán)利要求11所述的Html頁面壓縮裝置,其特征在于,每個靜態(tài)數(shù)據(jù)壓縮段均包括字典數(shù)據(jù),以可單獨進行解壓縮。19.根據(jù)權(quán)利要求12所述的Html頁面壓縮裝置,其特征在于,所述處理模塊用于: 將所述靜態(tài)數(shù)據(jù)壓縮段和所述動態(tài)數(shù)據(jù)壓縮段按照字符串的順序拼裝為Html頁面壓縮數(shù)據(jù)。20.根據(jù)權(quán)利要求11所述的Html頁面壓縮裝置,其特征在于,所述裝置還包括配置模塊,用于: 配置Http response header,以通知瀏覽器其接收的Html頁面壓縮數(shù)據(jù)的壓縮格式。
【文檔編號】G06F17/30GK106033448SQ201510115508
【公開日】2016年10月19日
【申請日】2015年3月17日
【發(fā)明人】張榮華
【申請人】阿里巴巴集團控股有限公司