專(zhuān)利名稱(chēng):在http代理中處理圖片的方法、代理服務(wù)器及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)領(lǐng)域,特別涉及一種在HTTP代理中處理圖片的方法、代理服務(wù)器及系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)應(yīng)用和移動(dòng)互聯(lián)網(wǎng)應(yīng)用的日益發(fā)展和普及,互聯(lián)網(wǎng)上的圖片越來(lái)越多。在絕大部分web系統(tǒng)中,圖片流量占了總流量的70%以上。因此,優(yōu)化圖片格式、降低圖片文件大小,對(duì)提升web系統(tǒng)的性能、提升web的訪問(wèn)速度以及減少web系統(tǒng)對(duì)帶寬的需求有著決定性的作用。當(dāng)網(wǎng)站存在較大的圖片需要顯示時(shí),例如一些廣告圖片其分辨率可達(dá)到560*95,更有甚者,一些廣告圖片分辨率大小可達(dá)到768*90,圖片大小在100KB以上。此類(lèi)大圖片的顯示會(huì)導(dǎo)致需下載更多的流量,更長(zhǎng)的圖片下載時(shí)間和頁(yè)面加載顯示時(shí)間,致使用戶(hù)等待網(wǎng)頁(yè)顯示的時(shí)間較長(zhǎng),用戶(hù)體驗(yàn)較差。而在目前移動(dòng)終端的網(wǎng)絡(luò)條件下,下載和顯示此類(lèi)圖片會(huì)導(dǎo)致體驗(yàn)更差,在圖片未下載完前,頁(yè)面顯示格式不對(duì)或者顯示錯(cuò)亂或者甚至不能顯示,給用戶(hù)的體驗(yàn)很差?,F(xiàn)有技術(shù)中,解決此類(lèi)問(wèn)題的方法一般是網(wǎng)站自身盡量少用大圖片,對(duì)大圖片盡快壓縮以減少圖片大小,但此方法存在很大的局限性:一方面一些網(wǎng)站對(duì)于大圖片不能完全避免不用,比如大的廣告圖片和本身就是圖片類(lèi)的網(wǎng)站;另一方面對(duì)圖片過(guò)量壓縮也會(huì)導(dǎo)致圖片質(zhì)量下降,一般只能在圖像質(zhì)量和圖像大小之間做一個(gè)平衡,最終各個(gè)網(wǎng)站還是存在大量的較大圖片的顯示,并不能完全避免。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種在HTTP代理中處理圖片的方法,旨在解決現(xiàn)有技術(shù)中存在較大圖片導(dǎo)致用戶(hù)等待網(wǎng)頁(yè)顯示的時(shí)間較長(zhǎng)的技術(shù)問(wèn)題。為了實(shí)現(xiàn)發(fā)明目的,本發(fā)明提供一種在HTTP代理中處理圖片的方法,包括以下步驟:客戶(hù)端與服務(wù)器建立連接,代理服務(wù)器對(duì)所述連接做代理;代理服務(wù)器截獲客戶(hù)端與服務(wù)器之間的交互數(shù)據(jù),并檢查交互數(shù)據(jù)中是否包括圖片數(shù)據(jù);當(dāng)交互數(shù)據(jù)中包括圖片數(shù)據(jù)時(shí),根據(jù)預(yù)置的用戶(hù)配置策略對(duì)所述圖片進(jìn)行處理。優(yōu)選地,所述預(yù)置的用戶(hù)配置策略包括圖片替換策略、圖片顯示策略和圖片格式轉(zhuǎn)換策略。優(yōu)選地,在執(zhí)行所述根據(jù)預(yù)置的用戶(hù)配置策略對(duì)所述圖片進(jìn)行處理之前還包括:分析所述交互數(shù)據(jù)中的圖片數(shù)據(jù),判斷是否為大圖;所述判斷是否為大圖的方法包括根據(jù)圖片的分辨率、大小,和預(yù)置的大圖分辨率閾值、大小閾值比對(duì)來(lái)判斷所述圖片是否為大圖。
優(yōu)選地,所述用戶(hù)配置策略為圖片替換策略;所述根據(jù)預(yù)置的用戶(hù)配置策略對(duì)所述圖片進(jìn)行處理包括:用指定圖片替換待處理圖片;或,將所述圖片轉(zhuǎn)換成縮略圖并替換待處理圖片;對(duì)響應(yīng)數(shù)據(jù)中超文本標(biāo)記語(yǔ)言HTML中的大片標(biāo)簽進(jìn)行處理,以顯示替換后的圖片。優(yōu)選地,所述用戶(hù)配置策略為圖片顯示策略;所述根據(jù)預(yù)置的用戶(hù)配置策略對(duì)所述圖片進(jìn)行處理包括:對(duì)響應(yīng)的HTML頁(yè)面進(jìn)行處理,包括:立即讓被替換后的圖片標(biāo)簽,重新加載原始圖片;或延遲一定時(shí)間后,重新加載原始圖片;或僅在用戶(hù)產(chǎn)生特定行為時(shí),被替換的圖片標(biāo)簽才重新加載原始圖片,否則只顯示替換后的縮略圖或者固定圖片;用戶(hù)產(chǎn)生特定的行為,包括但不限于用戶(hù)點(diǎn)擊圖片、用戶(hù)鼠標(biāo)移動(dòng)到圖片上、用戶(hù)輸入焦點(diǎn)移到圖片標(biāo)簽、用戶(hù)滾動(dòng)條下來(lái)、鼠標(biāo)滾動(dòng)等操作行為。優(yōu)選地,所述用戶(hù)配置策略為圖片格式轉(zhuǎn)換策略;所述根據(jù)預(yù)置的用戶(hù)配置策略對(duì)所述圖片進(jìn)行處理包括:將圖片格式轉(zhuǎn)換為另外一種格式,并判斷轉(zhuǎn)換后的圖片大??;如轉(zhuǎn)換后的大小比原始圖片還大,則繼續(xù)轉(zhuǎn)換為另外一種格式,直至找到一種轉(zhuǎn)換后比原始圖片更小的格式;轉(zhuǎn)換的格式包括但不限于jpg轉(zhuǎn)為png、jpg轉(zhuǎn)為webp、gif轉(zhuǎn)為png、gif轉(zhuǎn)為webp、同一種格式轉(zhuǎn)為容量更小的圖片;圖片格式一旦轉(zhuǎn)換成功,則修改響應(yīng)數(shù)據(jù)中的content-type字段為轉(zhuǎn)換后的新格式。本發(fā)明還提供一種在HTTP代理中處理圖片的代理服務(wù)器,其包括:監(jiān)聽(tīng)模塊,用于監(jiān)聽(tīng)客戶(hù)端瀏覽器與HTTP服務(wù)器之間的連接;代理模塊,用于對(duì)客戶(hù)端與服務(wù)器之間的連接做代理;圖片檢測(cè)模塊,用于檢測(cè)客戶(hù)端瀏覽器與服務(wù)器之間的交互數(shù)據(jù)是否包括圖片數(shù)據(jù),并判斷所述圖片是否為大圖;圖片處理模塊,用于當(dāng)交互數(shù)據(jù)包括圖片時(shí),根據(jù)預(yù)置的用戶(hù)配置策略對(duì)所述圖片進(jìn)行處理。優(yōu)選地,上述代理服務(wù)器還包括:圖片信息分析模塊,用于分析交互數(shù)據(jù)中的圖片信息;圖片大小判斷模塊,用于判斷圖片是否為大圖,判斷方法包括但不限于根據(jù)圖片的分辨率、圖片的大小與閾值對(duì)比進(jìn)行判斷。優(yōu)選地,所述圖片處理模塊具體用于:用指定圖片替換所述待處理圖片;或?qū)⑺鰣D片轉(zhuǎn)換成縮略圖并替換;對(duì)超文本標(biāo)記語(yǔ)言HTML語(yǔ)言進(jìn)行處理,對(duì)所述圖片的標(biāo)簽顯示成替換后的圖片。優(yōu)選地,所述圖片處理模塊具體用于:對(duì)響應(yīng)的HTML頁(yè)面進(jìn)行處理,包括:
立即讓被替換后的圖片標(biāo)簽,重新加載原始圖片;或延遲一定時(shí)間后,重新加載原始圖片;或僅在用戶(hù)產(chǎn)生特定行為時(shí),被替換的圖片標(biāo)簽才重新加載原始圖片,否則只顯示替換后的縮略圖或者固定圖片;用戶(hù)產(chǎn)生特定的行為,包括但不限于用戶(hù)點(diǎn)擊圖片、用戶(hù)鼠標(biāo)移動(dòng)到圖片上、用戶(hù)輸入焦點(diǎn)移到圖片標(biāo)簽、用戶(hù)滾動(dòng)條下來(lái)、鼠標(biāo)滾動(dòng)等操作行為。優(yōu)選地,所述圖片處理模塊具體用于:將圖片格式轉(zhuǎn)換為另外一種格式,并判斷轉(zhuǎn)換后的圖片大??;如轉(zhuǎn)換后的大小比原始圖片還大,則繼續(xù)轉(zhuǎn)換為另外一種格式,直至找到一種轉(zhuǎn)換后比原始圖片更小的格式;轉(zhuǎn)換的格式包括但不限于jpg轉(zhuǎn)為png、jpg轉(zhuǎn)為webp、gif轉(zhuǎn)為png、gif轉(zhuǎn)為webp、同一種格式轉(zhuǎn)為容量更小的圖片;圖片格式一旦轉(zhuǎn)換成功,則修改響應(yīng)數(shù)據(jù)中的content-type字段為轉(zhuǎn)換后的新格式。本發(fā)明還提供一種在HTTP代理中處理圖片的系統(tǒng),包括客戶(hù)端和服務(wù)器,其還包括代理服務(wù)器,該代理服務(wù)器包括:監(jiān)聽(tīng)模塊,用于監(jiān)聽(tīng)客戶(hù)端瀏覽器與HTTP服務(wù)器之間的連接;代理模塊,用于對(duì)客戶(hù)端與服務(wù)器之間的連接做代理;圖片檢測(cè)模塊,用于檢測(cè)客戶(hù)端瀏覽器與服務(wù)器之間的交互數(shù)據(jù)是否包括圖片數(shù)據(jù),并判斷所述圖片是否為大圖;圖片處理模塊,用于當(dāng)交互數(shù)據(jù)包括圖片時(shí),根據(jù)預(yù)置的用戶(hù)配置策略對(duì)所述圖片進(jìn)行處理。本發(fā)明通過(guò)在網(wǎng)站前面配置前置代理服務(wù)器,對(duì)網(wǎng)站的大圖片進(jìn)行替換、顯示以及轉(zhuǎn)換格式等處理,可減少圖片容量,提高網(wǎng)速,提升網(wǎng)站瀏覽者的用戶(hù)體驗(yàn)。
圖1為本發(fā)明一實(shí)施例中在HTTP代理中處理圖片的方法的步驟流程圖;圖2為本發(fā)明一實(shí)施例中根據(jù)預(yù)置的用戶(hù)配置策略對(duì)圖片進(jìn)行處理的步驟流程圖;圖3為本發(fā)明又一實(shí)施例中根據(jù)預(yù)置的用戶(hù)配置策略對(duì)圖片進(jìn)行處理步驟流程圖;圖4為本發(fā)明一實(shí)施例中在HTTP代理中處理圖片的代理服務(wù)器的結(jié)構(gòu)示意圖。本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。
具體實(shí)施例方式應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用于解釋本發(fā)明,并不用于限定本發(fā)明。參照?qǐng)D1,為本發(fā)明一實(shí)施例中在HTTP代理中處理圖片的方法流程圖。本發(fā)明實(shí)施例中,在HTTP代理中處理圖片的方法包括以下步驟:步驟S10,客戶(hù)端與服務(wù)器建立連接,代理服務(wù)器對(duì)所述連接做代理;本發(fā)明實(shí)施例中,代理服務(wù)器安裝在服務(wù)器前端,可代理HTTP服務(wù),可以是上網(wǎng)行為管理設(shè)備、負(fù)載均衡器、緩存服務(wù)器、流量管理設(shè)備等,但不限于此類(lèi)設(shè)備。
步驟S20,代理服務(wù)器截獲客戶(hù)端與服務(wù)器之間的交互數(shù)據(jù),并檢查交互數(shù)據(jù)中是否包括圖片數(shù)據(jù);用戶(hù)通過(guò)客戶(hù)端瀏覽器發(fā)送HTTP請(qǐng)求,由代理服務(wù)器將該請(qǐng)求轉(zhuǎn)發(fā)至服務(wù)器,服務(wù)器會(huì)反饋?lái)憫?yīng)數(shù)據(jù)。在此過(guò)程中,代理服務(wù)器可客戶(hù)端與服務(wù)器之間的交互數(shù)據(jù)(例如服務(wù)器的響應(yīng)數(shù)據(jù)等),并根據(jù)數(shù)據(jù)中的相關(guān)字段(例如content-type:1mage/jpg或content-type:1mage/gif字段)判斷是否包含大容量的圖片。步驟S30,當(dāng)交互數(shù)據(jù)中包括圖片數(shù)據(jù)時(shí),根據(jù)預(yù)置的用戶(hù)配置策略對(duì)所述圖片進(jìn)行處理。本發(fā)明實(shí)施例中,用戶(hù)配置策略由用戶(hù)預(yù)置在代理服務(wù)器中,其目的在于減少圖片容量,例如轉(zhuǎn)換圖片格式等。本發(fā)明通過(guò)在網(wǎng)站前面配置前置代理服務(wù)器,對(duì)網(wǎng)站的大圖片進(jìn)行替換、顯示以及轉(zhuǎn)換格式等處理,可減少圖片容量,提高網(wǎng)速,提升網(wǎng)站瀏覽者的用戶(hù)體驗(yàn)。用戶(hù)配置策略包括圖片替換策略、圖片顯示策略和圖片格式轉(zhuǎn)換策略。所謂圖片替換策略即用縮略圖或者指定的容量較小的圖片替換待處理的圖片;圖片顯示策略是指通過(guò)延時(shí)顯示或者基于用戶(hù)行為(例如點(diǎn)擊圖片等)顯示等;所謂圖片格式轉(zhuǎn)換策略是指將jpeg或gif格式圖片轉(zhuǎn)換為其他格式(例如png或webp等)的圖片。本發(fā)明實(shí)施例中,在執(zhí)行上述步驟S30之前,本發(fā)明在HTTP代理中處理圖片的方法還包括:分析所述交互數(shù)據(jù)中的圖片數(shù)據(jù),判斷是否為大圖;例如,首先分析服務(wù)器返回的HTML數(shù)據(jù),如是壓縮數(shù)據(jù),則對(duì)其解壓,然后分析HTML文件的MG標(biāo)簽,找出大圖片的MG標(biāo)簽。其中,判斷是否為大圖的方法包括根據(jù)圖片的分辨率、大小,和預(yù)置的大圖分辨率閾值、大小閾值比對(duì)來(lái)判斷所述圖片是否為大圖。例如,圖片像素面積超過(guò)N的即為大圖片,
N可由用戶(hù)配置。本發(fā)明一實(shí)施例中,用戶(hù)配置策略為圖片替換策略,參見(jiàn)圖2所示,在一實(shí)施方案中,上述步驟30具體可包括:步驟S31,將所述圖片轉(zhuǎn)換成縮略圖并替換待處理圖片;本實(shí)施例中,將大圖片生成一個(gè)小的縮略圖,一般為32*32,大小在Ik以下。生成縮略圖的過(guò)程可以異步執(zhí)行,并且將縮略圖替換待處理圖片。步驟S32,對(duì)響應(yīng)數(shù)據(jù)中超文本標(biāo)記語(yǔ)言HTML中的大片標(biāo)簽進(jìn)行處理,以顯示替換后的圖片。本實(shí)施例中,縮略圖緩存后,將HTML的MG標(biāo)簽的SRC地址替換成縮略圖地址,比如在原地址后面加上?thumbnail,以便瀏覽器下次請(qǐng)求時(shí),代理服務(wù)器能識(shí)別出是請(qǐng)求縮略圖。由于縮略圖分辨率一般是原圖的十幾分之一,所以瀏覽器在顯示縮略圖時(shí),會(huì)拉升顯示,顯示出來(lái)的效果即是一個(gè)模糊的效果,在用戶(hù)看來(lái)很像一個(gè)未完全加載完的圖片一樣,但不影響頁(yè)面的顯示效果。本發(fā)明實(shí)施例中,還可采用另一種方案替換待處理圖片,即用指定圖片替換待處理圖片。本實(shí)施方案同上述用縮略圖替換的方案類(lèi)似,只不過(guò)不替換成縮略圖,而是替換成一個(gè)統(tǒng)一小圖,比如可以對(duì)廣告圖片統(tǒng)一替換成一個(gè)小圖,上有提示文字:“廣告正在加載中”,或者提示:“請(qǐng)點(diǎn)擊顯示此廣告”。本發(fā)明另一實(shí)施例中,用戶(hù)配置策略為顯示策略。在一實(shí)施方案中,上述步驟S30可包括:對(duì)響應(yīng)的HTML頁(yè)面進(jìn)行處理,包括:
立即讓被替換后的圖片標(biāo)簽,重新加載原始圖片;或延遲一定時(shí)間后,重新加載原始圖片;或僅在用戶(hù)產(chǎn)生特定行為時(shí),被替換的圖片標(biāo)簽才重新加載原始圖片,否則只顯示替換后的縮略圖或者固定圖片;例如,通過(guò)在HTML頁(yè)面中插入一段腳本JS代碼,該JS代碼在body加載完成立即執(zhí)打或者指定延遲的時(shí)間后執(zhí)彳丁,執(zhí)彳丁時(shí)遍歷所有的IMG大圖節(jié)點(diǎn),把IMG的大圖重新加載,這時(shí)給予瀏覽者的體驗(yàn)就是大圖加載完變清晰了。在另一實(shí)施方案中,上述步驟S30也可包括如下步驟:僅在用戶(hù)產(chǎn)生特定行為時(shí),被替換的圖片標(biāo)簽才重新加載原始圖片,否則只顯示替換后的縮略圖或者固定圖片。用戶(hù)特定的行為包括但不限于用戶(hù)點(diǎn)擊圖片、用戶(hù)鼠標(biāo)移動(dòng)到圖片上、用戶(hù)輸入焦點(diǎn)移到圖片標(biāo)簽、用戶(hù)滾動(dòng)條下來(lái)、鼠標(biāo)滾動(dòng)等操作行為。例如,可僅在用戶(hù)點(diǎn)擊、鼠標(biāo)經(jīng)過(guò)圖片區(qū)域或用戶(hù)滾動(dòng)頁(yè)面時(shí)顯示原始圖片,否則只顯示替換后的縮略圖或者固定圖片。即只有在用戶(hù)點(diǎn)擊、鼠標(biāo)經(jīng)過(guò)該圖片區(qū)域或用戶(hù)滾動(dòng)頁(yè)面時(shí),才把大圖片顯示出來(lái),否則只顯示替換后的縮略圖或者固定圖片。很多圖片網(wǎng)站,特別是在一頁(yè)里面顯示大量圖片的時(shí),只有鼠標(biāo)往下滾動(dòng)才會(huì)刷新把圖片顯示出來(lái),還有微博的刷新,也是這種類(lèi)似的效果。給用戶(hù)的體驗(yàn)就是圖片的按需加載,想看的圖片才加載,不想看的圖片就不需要加載,節(jié)省了網(wǎng)絡(luò)流量,同時(shí)也節(jié)省了時(shí)間。本發(fā)明又一實(shí)施例中,用戶(hù)配置策略為圖片格式轉(zhuǎn)換策略,參見(jiàn)圖3所示,在本實(shí)施例中,上述步驟S30包括:將圖片格式轉(zhuǎn)換為另外一種格式,并判斷轉(zhuǎn)換后的圖片大?。蝗甾D(zhuǎn)換后的大小比原始圖片還大,則繼續(xù)轉(zhuǎn)換為另外一種格式,直至找到一種轉(zhuǎn)換后比原始圖片更小的格式;轉(zhuǎn)換的格式包括但不限于jpg轉(zhuǎn)為png、jpg轉(zhuǎn)為webp、gif轉(zhuǎn)為png、gif轉(zhuǎn)為webp、同一種格式轉(zhuǎn)為容量更小的圖片;圖片格式一旦轉(zhuǎn)換成功,則修改響應(yīng)數(shù)據(jù)中的content-type字段為轉(zhuǎn)換后的新格式。眾所周知,png是一種圖像文件存儲(chǔ)格式。一般應(yīng)用于JAVA程序中,或網(wǎng)頁(yè)或S60程序中是因?yàn)樗鼔嚎s比高,生成文件容量小。WebP是Google推出的一種圖片格式,它基于VP8編碼,可對(duì)圖像大幅壓縮。與JPEG相同,WebP也是一種有損壓縮,但在畫(huà)質(zhì)相同的情況下,WebP格式比JPEG圖像小40%左右。因此本發(fā)明實(shí)施例能減少圖片容量,提高網(wǎng)速。另外,本實(shí)施例使用代理服務(wù)器做代理,來(lái)實(shí)現(xiàn)對(duì)圖片格式進(jìn)行轉(zhuǎn)換,在對(duì)圖片進(jìn)行轉(zhuǎn)換時(shí),不需要修改web系統(tǒng)中的html代碼,只需要在應(yīng)用交付器完成圖片格式轉(zhuǎn)換并修改content-type頭部為合適的mime類(lèi)型,達(dá)到瀏覽器的對(duì)圖片的正常顯示的目的。本發(fā)明另提供一種在HTTP代理中處理圖片的代理服務(wù)器,設(shè)置在服務(wù)器與客戶(hù)端之間,可實(shí)現(xiàn)上述方法。參照?qǐng)D4所示,在一實(shí)施例中,該代理服務(wù)器3至少包括:監(jiān)聽(tīng)模塊10,用于監(jiān)聽(tīng)客戶(hù)端瀏覽器與HTTP服務(wù)器I之間的連接;代理模塊20,用于對(duì)客戶(hù)端2與服務(wù)器I之間的連接做代理;圖片檢測(cè)模塊30,用于檢測(cè)客戶(hù)端瀏覽器與服務(wù)器I之間的交互數(shù)據(jù)是否包括圖片數(shù)據(jù),并判斷所述圖片是否為大圖;圖片處理模塊40,用于當(dāng)交互數(shù)據(jù)包括圖片時(shí),根據(jù)預(yù)置的用戶(hù)配置策略對(duì)所述圖片進(jìn)行處理。
本發(fā)明實(shí)施例中,代理服務(wù)器3安裝在服務(wù)器前端,可代理HTTP服務(wù),可以是上網(wǎng)行為管理設(shè)備、負(fù)載均衡器、緩存服務(wù)器、流量管理設(shè)備等,但不限于此類(lèi)設(shè)備。用戶(hù)通過(guò)客戶(hù)端瀏覽器發(fā)送HTTP請(qǐng)求,由代理模塊20將該請(qǐng)求轉(zhuǎn)發(fā)至服務(wù)器1,服務(wù)器會(huì)反饋?lái)憫?yīng)數(shù)據(jù),此時(shí)監(jiān)聽(tīng)模塊10可截獲服務(wù)器I的響應(yīng),并根據(jù)數(shù)據(jù)中的相關(guān)字段(例如content-type:1mage/ jpg 或 content-type:1mage/gif 字段)判斷是否包含大容量的圖片。參見(jiàn)圖4所示,在一實(shí)施例中,上述代理服務(wù)器3還包括:圖片信息分析模塊21,用于分析交互數(shù)據(jù)中的圖片信息;例如,圖片信息分析模塊30首先分析服務(wù)器返回的HTML數(shù)據(jù),如是壓縮數(shù)據(jù),則對(duì)其解壓,然后分析HTML文件的IMG標(biāo)簽,找出大圖片的MG標(biāo)簽。圖片大小判斷模塊22,用于判斷圖片是否為大圖,判斷方法包括但不限于根據(jù)圖片的分辨率、圖片的大小與閾值對(duì)比進(jìn)行判斷。例如,圖片像素面積超過(guò)N的即為大圖片,
N可由用戶(hù)配置。本發(fā)明一實(shí)施例中,圖片處理模塊40具體用于:用指定圖片替換所述待處理圖片;或?qū)⑺鰣D片轉(zhuǎn)換成縮略圖并替換;對(duì)超文本標(biāo)記語(yǔ)言HTML語(yǔ)言進(jìn)行處理,對(duì)所述圖片的標(biāo)簽顯示成替換后的圖片。本實(shí)施例中,圖片處理模塊40將大圖片生成一個(gè)小的縮略圖,一般為32*32,大小在Ik以下。生成縮略圖的過(guò)程可以異步執(zhí)行,并且將縮略圖緩存下來(lái)??s略圖緩存后,將HTML的MG標(biāo)簽的SRC地址替換成縮略圖地址,比如在原地址后面加上?thumbnail,以便瀏覽器下次請(qǐng)求時(shí),代理服務(wù)器3能識(shí)別出是請(qǐng)求縮略圖。由于縮略圖分辨率一般是原圖的十幾分之一,所以瀏覽器在顯示縮略圖時(shí),會(huì)拉升顯示,顯示出來(lái)的效果即是一個(gè)模糊的效果,在用戶(hù)看來(lái)很像一個(gè)未完全加載完的圖片一樣,但不影響頁(yè)面的顯示效果。本發(fā)明實(shí)施例中,圖片處理模塊40還可采用另一種方案替換待處理圖片,即用指定圖片替換所述待處理圖片。本實(shí)施方案同上述用縮略圖替換的方案類(lèi)似,只不過(guò)不替換成縮略圖,而是替換成一個(gè)統(tǒng)一小圖,比如可以對(duì)廣告圖片統(tǒng)一替換成一個(gè)小圖,上有提示文字:“廣告正在加載中”,或者提示:“請(qǐng)點(diǎn)擊顯示此廣告”。在本發(fā)明另一實(shí)施例中,圖片處理模塊40可具體用于:對(duì)響應(yīng)的HTML頁(yè)面進(jìn)行處理,包括:立即讓被替換后的圖片標(biāo)簽,重新加載原始圖片;或延遲一定時(shí)間后,重新加載原始圖片。例如可通過(guò)在HTML頁(yè)面中插入一段腳本JS代碼,該JS代碼在body加載完成后立即執(zhí)行或者指定延遲的時(shí)間后執(zhí)行,執(zhí)行時(shí)遍歷所有的MG大圖節(jié)點(diǎn),把MG的大圖重新加載,這時(shí)給予瀏覽者的體驗(yàn)就是大圖加載完變清晰了。在另一實(shí)施方案中,圖片處理模塊40也可僅在用戶(hù)產(chǎn)生特定行為時(shí),被替換的圖片標(biāo)簽才重新加載原始圖片,否則只顯示替換后的縮略圖或者固定圖片。用戶(hù)產(chǎn)生特定的行為包括但不限于用戶(hù)點(diǎn)擊圖片、用戶(hù)鼠標(biāo)移動(dòng)到圖片上、用戶(hù)輸入焦點(diǎn)移到圖片標(biāo)簽、用戶(hù)滾動(dòng)條下來(lái)、鼠標(biāo)滾動(dòng)等操作行為。即只有在用戶(hù)點(diǎn)擊、鼠標(biāo)經(jīng)過(guò)該圖片區(qū)域或用戶(hù)滾動(dòng)頁(yè)面時(shí),才把大圖片顯示出來(lái),否則只顯示替換后的縮略圖或者固定圖片。很多圖片網(wǎng)站,特別是在一頁(yè)里面顯示大量圖片的時(shí),只有鼠標(biāo)往下滾動(dòng)才會(huì)刷新把圖片顯示出來(lái),還有微博的刷新,也是這種類(lèi)似的效果。給用戶(hù)的體驗(yàn)就是圖片的按需加載,想看的圖片才加載,不想看的圖片就不需要加載,節(jié)省了網(wǎng)絡(luò)流量,同時(shí)也節(jié)省了時(shí)間。在本發(fā)明又一實(shí)施例中,圖片處理模塊40具體可用于:將圖片格式轉(zhuǎn)換為另外一種格式,并判斷轉(zhuǎn)換后的圖片大小;如轉(zhuǎn)換后的大小比原始圖片還大,則繼續(xù)轉(zhuǎn)換為另外一種格式,直至找到一種轉(zhuǎn)換后比原始圖片更小的格式;轉(zhuǎn)換的格式包括但不限于jpg轉(zhuǎn)為png、jpg轉(zhuǎn)為webp、gif轉(zhuǎn)為png、gif轉(zhuǎn)為webp、同一種格式轉(zhuǎn)為容量更小的圖片;圖片格式一旦轉(zhuǎn)換成功,則修改響應(yīng)數(shù)據(jù)中的content-type字段為轉(zhuǎn)換后的新格式。所周知,png是一種圖像文件存儲(chǔ)格式。一般應(yīng)用于JAVA程序中,或網(wǎng)頁(yè)或S60程序中是因?yàn)樗鼔嚎s比高,生成文件容量小。WebP是Google推出的一種圖片格式,它基于VP8編碼,可對(duì)圖像大幅壓縮。與JPEG相同,WebP也是一種有損壓縮,但在畫(huà)質(zhì)相同的情況下,WebP格式比JPEG圖像小40%左右。因此本發(fā)明實(shí)施例能減少圖片容量,提高網(wǎng)速。另外,本實(shí)施例使用代理服務(wù)器做代理,來(lái)實(shí)現(xiàn)對(duì)圖片格式進(jìn)行轉(zhuǎn)換,在對(duì)圖片進(jìn)行轉(zhuǎn)換時(shí),不需要修改web系統(tǒng)中的html代碼,只需要在應(yīng)用交付器完成圖片格式轉(zhuǎn)換并修改content-type頭部為合適的mime類(lèi)型,達(dá)到瀏覽器的對(duì)圖片的正常顯示的目的。本發(fā)明還提供一種在HTTP代理中處理圖片的系統(tǒng),該系統(tǒng)包括前述客戶(hù)端2和服務(wù)器1,其還包括代理服務(wù)器3,該代理服務(wù)器3的功能作用及實(shí)現(xiàn)原理可參見(jiàn)前述圖1至圖4及其對(duì)應(yīng)的實(shí)施例,在此不作詳述。由于設(shè)置有上述代理服務(wù)器3,本發(fā)明在HTTP代理中處理圖片的系統(tǒng)能減少圖片容量,提高網(wǎng)速,提升用戶(hù)體驗(yàn)。以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專(zhuān)利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專(zhuān)利保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種在HTTP代理中處理圖片的方法,其特征在于,包括以下步驟: 客戶(hù)端與服務(wù)器建立連接,代理服務(wù)器對(duì)所述連接做代理; 代理服務(wù)器截獲客戶(hù)端與服務(wù)器之間的交互數(shù)據(jù),并檢查交互數(shù)據(jù)中是否包括圖片數(shù)據(jù); 當(dāng)交互數(shù)據(jù)中包括圖片數(shù)據(jù)時(shí),根據(jù)預(yù)置的用戶(hù)配置策略對(duì)所述圖片進(jìn)行處理。
2.如權(quán)利要求1所述的在HHTP代理中處理圖片的方法,其特征在于,所述預(yù)置的用戶(hù)配置策略包括圖片替換策略、圖片顯示策略和圖片格式轉(zhuǎn)換策略。
3.如權(quán)利要求1或2所述的在HTTP代理中處理圖片的方法,其特征在于,在執(zhí)行所述根據(jù)預(yù)置的用戶(hù)配置策略對(duì)所述圖片進(jìn)行處理之前還包括: 分析所述交互數(shù)據(jù)中的圖片數(shù)據(jù),判斷是否為大圖; 所述判斷是否為大圖的方法包括根據(jù)圖片的分辨率、大小,和預(yù)置的大圖分辨率閾值、大小閾值比對(duì)來(lái)判斷所述圖片是否為大圖。
4.如權(quán)利要求2所述的在HTTP代理中處理圖片的方法,其特征在于,所述用戶(hù)配置策略為圖片替換策略;所述根據(jù)預(yù)置的用戶(hù)配置策略對(duì)所述圖片進(jìn)行處理包括: 用指定圖片替換待處理圖片;或, 將所述圖片轉(zhuǎn)換成縮略圖并替換待處理圖片; 對(duì)響應(yīng)數(shù)據(jù)中超文本標(biāo)記語(yǔ)言HTML中的大片標(biāo)簽進(jìn)行處理,以顯示替換后的圖片。
5.如權(quán)利要求2所述的在HTTP代理中處理圖片的方法,其特征在于,所述用戶(hù)配置策略為圖片顯示策略;所述根據(jù)預(yù)置的用戶(hù)配置策略對(duì)所述圖片進(jìn)行處理包括: 對(duì)響應(yīng)的HTML頁(yè)面進(jìn)行處理,包括: 立即讓被替換后的圖片標(biāo)簽,重新加載原始圖片; 或延遲一定時(shí)間后,重新加載原始圖片; 或讓在用戶(hù)產(chǎn)生特定行為時(shí),被替換的圖片標(biāo)簽才重新加載原始圖片,否則只顯示替換后的縮略圖或者固定圖片; 用戶(hù)產(chǎn)生特定的行為,包括但不限于用戶(hù)點(diǎn)擊圖片、用戶(hù)鼠標(biāo)移動(dòng)到圖片上、用戶(hù)輸入焦點(diǎn)移到圖片標(biāo)簽、用戶(hù)滾動(dòng)條下來(lái)、鼠標(biāo)滾動(dòng)等操作行為。
6.如權(quán)利要求2所述的在HTTP代理中處理圖片的方法,其特征在于,所述用戶(hù)配置策略為圖片格式轉(zhuǎn)換策略;所述根據(jù)預(yù)置的用戶(hù)配置策略對(duì)所述圖片進(jìn)行處理包括: 將圖片格式轉(zhuǎn)換為另外一種格式,并判斷轉(zhuǎn)換后的圖片大?。蝗甾D(zhuǎn)換后的大小比原始圖片還大,則繼續(xù)轉(zhuǎn)換為另外一種格式,直至找到一種轉(zhuǎn)換后比原始圖片更小的格式;轉(zhuǎn)換的格式包括但不限于jpg轉(zhuǎn)為png、jpg轉(zhuǎn)為webp、gif轉(zhuǎn)為png、gif轉(zhuǎn)為webp、同一種格式轉(zhuǎn)為容量更小的圖片;圖片格式一旦轉(zhuǎn)換成功,則修改響應(yīng)數(shù)據(jù)中的content-type字段為轉(zhuǎn)換后的新格式。
7. —種在HTTP代理中處理圖片的代理服務(wù)器,其特征在于,包括: 監(jiān)聽(tīng)模塊,用于監(jiān)聽(tīng)客戶(hù)端瀏覽器與HTTP服務(wù)器之間的連接; 代理模塊,用于對(duì)客戶(hù)端與服務(wù)器之間的連接做代理; 圖片檢測(cè)模塊,用于檢測(cè)客戶(hù)端瀏覽器與服務(wù)器之間的交互數(shù)據(jù)是否包括圖片數(shù)據(jù),并判斷所述圖片是否為大圖;圖片處理模塊,用于當(dāng)交互數(shù)據(jù)包括圖片時(shí),根據(jù)預(yù)置的用戶(hù)配置策略對(duì)所述圖片進(jìn)行處理。
8.如權(quán)利要求7所述的代理服務(wù)器,其特征在于,還包括: 圖片信息分析模塊,用于分析交互數(shù)據(jù)中的圖片信息; 圖片大小判斷模塊,用于判斷圖片是否為大圖,判斷方法包括但不限于根據(jù)圖片的分辨率、圖片的大小與閾值對(duì)比進(jìn)行判斷。
9.如權(quán)利要求7所述的代理服務(wù)器,其特征在于,所述圖片處理模塊具體用于: 用指定圖片替換所述待處理圖片;或 將所述圖片轉(zhuǎn)換成縮略圖并替換; 對(duì)超文本標(biāo)記語(yǔ)言HTML語(yǔ)言進(jìn)行處理,對(duì)所述圖片的標(biāo)簽顯示成替換后的圖片。
10.如權(quán)利要求7所述的代理服務(wù)器,其特征在于,所述圖片處理模塊具體用于: 對(duì)響應(yīng)的HTML頁(yè)面進(jìn)行處理,包括: 立即讓被替換后的圖片標(biāo)簽,重新加載原始圖片; 或延遲一定時(shí)間后,重新加載原始圖片; 或僅在用戶(hù)產(chǎn)生特定行為時(shí),被替換的圖片標(biāo)簽才重新加載原始圖片,否則只顯示替換后的縮略圖或者固定圖片; 用戶(hù)產(chǎn)生特定的行為,包括但不限于用戶(hù)點(diǎn)擊圖片、用戶(hù)鼠標(biāo)移動(dòng)到圖片上、用戶(hù)輸入焦點(diǎn)移到圖片標(biāo)簽、用戶(hù)滾動(dòng)條下來(lái)、鼠標(biāo)滾動(dòng)等操作行為。
11.如權(quán)利要求7所述的代理服務(wù)器,其特征在于,所述圖片處理模塊具體用于: 將圖片格式轉(zhuǎn)換為另外一種格式,并判斷轉(zhuǎn)換后的圖片大?。蝗甾D(zhuǎn)換后的大小比原始圖片還大,則繼續(xù)轉(zhuǎn)換為另外一種格式,直至找到一種轉(zhuǎn)換后比原始圖片更小的格式;轉(zhuǎn)換的格式包括但不限于jpg轉(zhuǎn)為png、jpg轉(zhuǎn)為webp、gif轉(zhuǎn)為png、gif轉(zhuǎn)為webp、同一種格式轉(zhuǎn)為容量更小的圖片;圖片格式一旦轉(zhuǎn)換成功,則修改響應(yīng)數(shù)據(jù)中的content-type字段為轉(zhuǎn)換后的新格式。
12.—種在HTTP代理中處理圖片的系統(tǒng),包括客戶(hù)端和服務(wù)器,其特征在于,還包括如權(quán)利要求1至10中任一項(xiàng)所述的代理服務(wù)器。
全文摘要
本發(fā)明公開(kāi)一種在HTTP代理中處理圖片的方法,包括以下步驟客戶(hù)端與服務(wù)器建立連接,代理服務(wù)器對(duì)所述連接做代理;代理服務(wù)器截獲客戶(hù)端與服務(wù)器之間的交互數(shù)據(jù),并檢查交互數(shù)據(jù)中是否包括圖片數(shù)據(jù);當(dāng)交互數(shù)據(jù)中包括圖片數(shù)據(jù)時(shí),根據(jù)預(yù)置的用戶(hù)配置策略對(duì)所述圖片進(jìn)行處理。本發(fā)明還提供一種用以實(shí)現(xiàn)上述方法的在HTTP代理中處理圖片的代理服務(wù)器和系統(tǒng)。本發(fā)明能提升用戶(hù)瀏覽網(wǎng)站時(shí)的用戶(hù)體驗(yàn)。
文檔編號(hào)H04L29/06GK103139292SQ20131002271
公開(kāi)日2013年6月5日 申請(qǐng)日期2013年1月22日 優(yōu)先權(quán)日2013年1月22日
發(fā)明者劉浩鵬, 陳釗毅 申請(qǐng)人:深圳市深信服電子科技有限公司