日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

下載文件的方法、裝置及用戶(hù)終端的制作方法

文檔序號(hào):10538918閱讀:505來(lái)源:國(guó)知局
下載文件的方法、裝置及用戶(hù)終端的制作方法
【專(zhuān)利摘要】本發(fā)明實(shí)施例提供一種下載文件的方法、裝置及用戶(hù)終端,所述方法包括:接收第一服務(wù)器返回的下載鏈接,所述下載鏈接包括目標(biāo)文件的第一總字節(jié)長(zhǎng)度;向與所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求;接收所述第二服務(wù)器返回的HTTP響應(yīng)頭信息,所述HTTP響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度;當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),開(kāi)始下載所述當(dāng)前文件。所述方法簡(jiǎn)單高效,無(wú)需修改客戶(hù)端與服務(wù)端的接口協(xié)議,并且確保了應(yīng)用分發(fā)的正確性,提高了下載成功率以及用戶(hù)下載體驗(yàn)。
【專(zhuān)利說(shuō)明】
下載文件的方法、裝置及用戶(hù)終端
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,具體而言,涉及一種下載文件的方法、裝置及用戶(hù)終端。
【背景技術(shù)】
[0002]當(dāng)前下載軟件在下載應(yīng)用文件時(shí),可能會(huì)出現(xiàn)下載文件字節(jié)數(shù)據(jù)錯(cuò)亂或數(shù)據(jù)里混雜著網(wǎng)頁(yè)源碼數(shù)據(jù),導(dǎo)致安裝失敗的情況;或者會(huì)出現(xiàn)由于運(yùn)營(yíng)商重定向了下載鏈接或替換了下載內(nèi)容,使得所下載的應(yīng)用文件變成了其它運(yùn)營(yíng)商推廣的應(yīng)用,而導(dǎo)致安裝的應(yīng)用非用戶(hù)預(yù)期的應(yīng)用文件的情況。這兩種情況會(huì)使用戶(hù)的流量被浪費(fèi)、下載失敗率高且用戶(hù)體驗(yàn)較差。

【發(fā)明內(nèi)容】

[0003]有鑒于此,本發(fā)明實(shí)施例的目的在于提供一種下載文件的方法、裝置及用戶(hù)終端,以解決上述問(wèn)題。
[0004]為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例采用的技術(shù)方案如下:
[0005]第一方面,本發(fā)明實(shí)施例提供了一種下載文件的方法,所述方法包括:接收第一服務(wù)器返回的下載鏈接,所述下載鏈接包括目標(biāo)文件的第一總字節(jié)長(zhǎng)度;向與所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求;接收所述第二服務(wù)器返回的HTTP響應(yīng)頭信息,所述HTTP響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度;當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),開(kāi)始下載所述當(dāng)前文件。
[0006]第二方面,本發(fā)明實(shí)施例提供了一種下載文件的裝置,所述裝置包括:第一接收模塊,用于接收第一服務(wù)器返回的下載鏈接,所述下載鏈接包括目標(biāo)文件的第一總字節(jié)長(zhǎng)度;發(fā)送模塊,用于向與所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求;第二接收模塊,用于接收所述第二服務(wù)器返回的HTTP響應(yīng)頭信息,所述HTTP響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度;下載模塊,用于當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),開(kāi)始下載所述當(dāng)前文件。
[0007]第三方面,本發(fā)明實(shí)施例提供了一種用戶(hù)終端,所述用戶(hù)終端包括處理器以及存儲(chǔ)器,所述存儲(chǔ)器耦接到所述處理器,所述存儲(chǔ)器存儲(chǔ)指令,當(dāng)所述指令由所述處理器執(zhí)行時(shí)使所述用戶(hù)終端執(zhí)行以下操作:接收第一服務(wù)器返回的下載鏈接,所述下載鏈接包括目標(biāo)文件的第一總字節(jié)長(zhǎng)度;向與所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求;接收所述第二服務(wù)器返回的HTTP響應(yīng)頭信息,所述HTTP響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度;當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),開(kāi)始下載所述當(dāng)前文件。
[0008]與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例提供的一種下載文件的方法、裝置及用戶(hù)終端,通過(guò)在下載當(dāng)前文件之前,檢驗(yàn)?zāi)繕?biāo)文件的所述第一總字節(jié)長(zhǎng)度與當(dāng)前文件的所述第二總字節(jié)長(zhǎng)度是否一致,以實(shí)現(xiàn)對(duì)當(dāng)前下載文件的合法性的檢驗(yàn),所述方法無(wú)需修改客戶(hù)端與服務(wù)端的接口協(xié)議,實(shí)現(xiàn)起來(lái)簡(jiǎn)單高效,解決了下載應(yīng)用文件字節(jié)數(shù)據(jù)錯(cuò)亂或數(shù)據(jù)里混雜著網(wǎng)頁(yè)源碼數(shù)據(jù)導(dǎo)致安裝失敗、以及運(yùn)營(yíng)商重定向了下載鏈接導(dǎo)致安裝的應(yīng)用非用戶(hù)預(yù)期的應(yīng)用文件的問(wèn)題,提高了下載成功率以及用戶(hù)下載體驗(yàn)。
[0009]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說(shuō)明如下。
【附圖說(shuō)明】
[0010]為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實(shí)施例,因此不應(yīng)被看作是對(duì)范圍的限定,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
[0011]圖1是本發(fā)明實(shí)施例提供的用戶(hù)終端與服務(wù)器進(jìn)行交互的示意圖。
[0012]圖2是本發(fā)明實(shí)施例提供的用戶(hù)終端的結(jié)構(gòu)示意圖。
[0013]圖3是本發(fā)明第一實(shí)施例提供的一種下載文件的方法的流程圖。
[0014]圖4是本發(fā)明第二實(shí)施例提供的一種下載文件的方法的流程圖。
[0015]圖5是本發(fā)明第三實(shí)施例提供的一種下載文件的方法的流程圖。
[0016]圖6是本發(fā)明第四實(shí)施例提供的一種下載文件的方法的流程圖。
[0017]圖7是本發(fā)明第五實(shí)施例提供的一種下載文件的方法的流程圖。
[0018]圖8是本發(fā)明第六實(shí)施例提供的一種下載文件的方法的流程圖。
[0019]圖9是本發(fā)明實(shí)施例提供的一種下載文件裝置的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0020]下面將結(jié)合本發(fā)明實(shí)施例中附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來(lái)布置和設(shè)計(jì)。因此,以下對(duì)在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例?;诒景l(fā)明的實(shí)施例,本領(lǐng)域技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0021 ]應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類(lèi)似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步定義和解釋。同時(shí),在本發(fā)明的描述中,術(shù)語(yǔ)“第一”、“第二”等僅用于區(qū)分描述,而不能理解為指示或暗示相對(duì)重要性。
[0022]圖1示出了本發(fā)明實(shí)施例提供的服務(wù)器200與用戶(hù)終端100進(jìn)行交互的示意圖。所述服務(wù)器200通過(guò)網(wǎng)絡(luò)300與一個(gè)或多個(gè)用戶(hù)終端100進(jìn)行通信連接,以進(jìn)行數(shù)據(jù)通信或交互。所述服務(wù)器200可以是網(wǎng)絡(luò)服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器等。所述用戶(hù)終端100可以是個(gè)人電腦(personal computer,PC)、平板電腦、智能手機(jī)、個(gè)人數(shù)字助理(personal digitalassistant,PDA)、車(chē)載設(shè)備、穿戴設(shè)備等。
[0023]圖2示出了一種可應(yīng)用于本發(fā)明實(shí)施例中的用戶(hù)終端100的結(jié)構(gòu)框圖。如圖2所示,用戶(hù)終端100包括存儲(chǔ)器102、存儲(chǔ)控制器104,一個(gè)或多個(gè)(圖中僅示出一個(gè))處理器106、外設(shè)接口 108、射頻模塊110、音頻模塊112、觸控屏幕114等。這些組件通過(guò)一條或多條通訊總線/信號(hào)線116相互通訊。
[0024]存儲(chǔ)器102可用于存儲(chǔ)軟件程序以及模塊,如本發(fā)明實(shí)施例中的下載文件的方法以及裝置對(duì)應(yīng)的程序指令/模塊,處理器106通過(guò)運(yùn)行存儲(chǔ)在存儲(chǔ)器102內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,如本發(fā)明實(shí)施例提供的下載文件的方法。
[0025]存儲(chǔ)器102可包括高速隨機(jī)存儲(chǔ)器,還可包括非易失性存儲(chǔ)器,如一個(gè)或者多個(gè)磁性存儲(chǔ)裝置、閃存、或者其他非易失性固態(tài)存儲(chǔ)器。處理器106以及其他可能的組件對(duì)存儲(chǔ)器102的訪問(wèn)可在存儲(chǔ)控制器104的控制下進(jìn)行。
[0026]外設(shè)接口 108將各種輸入/輸入裝置耦合至處理器106以及存儲(chǔ)器102。在一些實(shí)施例中,外設(shè)接口 108,處理器106以及存儲(chǔ)控制器104可以在單個(gè)芯片中實(shí)現(xiàn)。在其他一些實(shí)例中,他們可以分別由獨(dú)立的芯片實(shí)現(xiàn)。
[0027]射頻模塊110用于接收以及發(fā)送電磁波,實(shí)現(xiàn)電磁波與電信號(hào)的相互轉(zhuǎn)換,從而與通訊網(wǎng)絡(luò)或者其他設(shè)備進(jìn)行通訊。
[0028]音頻模塊112向用戶(hù)提供音頻接口,其可包括一個(gè)或多個(gè)麥克風(fēng)、一個(gè)或者多個(gè)揚(yáng)聲器以及音頻電路。
[0029]觸控屏幕114在用戶(hù)終端100與用戶(hù)之間同時(shí)提供一個(gè)輸出及輸入界面。具體地,觸控屏幕114向用戶(hù)顯示視頻輸出,這些視頻輸出的內(nèi)容可包括文字、圖形、視頻及其任意組合。
[0030]可以理解,圖1所示的結(jié)構(gòu)僅為示意,用戶(hù)終端100還可包括比圖2中所示更多或者更少的組件,或者具有與圖2所示不同的配置。圖2中所示的各組件可以采用硬件、軟件或其組合實(shí)現(xiàn)。
[0031]于本發(fā)明實(shí)施例中,用戶(hù)終端100中安裝有客戶(hù)端,該客戶(hù)端可以是第三方應(yīng)用軟件,與服務(wù)器(Server)端相對(duì)應(yīng),共同遵循同一套數(shù)據(jù)協(xié)議,使得服務(wù)端跟客戶(hù)端能夠互相解析出對(duì)方的數(shù)據(jù),為用戶(hù)提供下載服務(wù),例如下載文件,下載視頻,下載音頻等。
[0032]圖3示出了本發(fā)明第一實(shí)施例提供的一種下載文件的方法的流程圖,請(qǐng)參閱圖3,本實(shí)施例描述的是客戶(hù)端的處理流程,所述方法包括:
[0033]步驟S301,接收第一服務(wù)器返回的下載鏈接,所述下載鏈接包括目標(biāo)文件的第一總字節(jié)長(zhǎng)度;
[0034]可以理解的是,所述下載鏈接中的第一總字節(jié)長(zhǎng)度,可以是由所述第一服務(wù)器預(yù)先將已有的文件進(jìn)行處理得到的每個(gè)文件的總字節(jié)長(zhǎng)度。服務(wù)器得到每個(gè)文件的總字節(jié)長(zhǎng)度后在每個(gè)文件的下載鏈接后添加總字節(jié)長(zhǎng)度這個(gè)參數(shù),得到新的下載鏈接,并更新第一服務(wù)器的數(shù)據(jù)庫(kù)。當(dāng)所述第一服務(wù)器接收到客戶(hù)端的下載鏈接請(qǐng)求后,將目標(biāo)文件對(duì)應(yīng)的下載鏈接返回給客戶(hù)端。
[0035]例如,假設(shè)第一服務(wù)器中之前存儲(chǔ)的文件A對(duì)應(yīng)的下載鏈接為:http://android—apps.25pp.com/fs01/2015/01/29/5/0—dd84568d3e5831d f12dac8cedc556e52.apk,
[0036]第一服務(wù)器通過(guò)計(jì)算求出文件A的總字節(jié)長(zhǎng)度,假設(shè)為19736456,則第一服務(wù)器將文件A對(duì)應(yīng)的下載鏈接更新為:
[0037 ] http://android — apps.25pp.com/fs01/2015/01/29/5/0 —dd84568d3e5831df 12dac8cedc556e52.apk?size = 19736456,其中,size = 19736456是目標(biāo)文件A的總字節(jié)長(zhǎng)度。
[0038]當(dāng)所述第一服務(wù)器接收到以文件A作為目標(biāo)文件的下載鏈接請(qǐng)求后,將包含size=19736456的下載鏈接返回給客戶(hù)端。
[0039]步驟S302,向與所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求;
[0040]例如,在前述示例中,當(dāng)客戶(hù)端接收到目標(biāo)文件A對(duì)應(yīng)的下載鏈接后,向所述下載鏈接:
[0041 ] http: //android—apps.25pp.com/fs01/2015/01/29/5/0_dd84568d3e5831df 12dac8cedc556e52.apk?size = 19736456,
[0042]對(duì)應(yīng)的第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求。
[0043]可以理解的是,所述第一服務(wù)器跟所述第二服務(wù)器可以為同一個(gè)服務(wù)器,即可以將目標(biāo)文件的內(nèi)容單獨(dú)存放在第二服務(wù)器,也可以同時(shí)在第一服務(wù)器上存儲(chǔ)目標(biāo)文件的下載鏈接以及目標(biāo)文件的內(nèi)容。
[0044]步驟S303,接收所述第二服務(wù)器返回的HTTP響應(yīng)頭信息,所述HTTP響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度;
[0045]第二服務(wù)器接收到所述HTTP請(qǐng)求后,會(huì)返回HTTP響應(yīng)信息。其中,HTTP響應(yīng)信息包括HTTP響應(yīng)頭信息和HTTP響應(yīng)正文信息。解析所述HTTP響應(yīng)信息中的HTTP響應(yīng)頭信息,其中,HTTP響應(yīng)頭信息中可以包括多個(gè)字段,取出表示當(dāng)前文件的總字節(jié)長(zhǎng)度的字段,例如“content—range”字段,通過(guò)該字段,第一服務(wù)器就可以獲知當(dāng)前請(qǐng)求下載的文件的大小,也就是第二總字節(jié)長(zhǎng)度。
[0046]步驟S304,當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),開(kāi)始下載所述當(dāng)前文件。
[0047]可以理解的是,如果應(yīng)用文件字節(jié)數(shù)據(jù)錯(cuò)亂或數(shù)據(jù)里混雜著網(wǎng)頁(yè)源碼數(shù)據(jù),或者運(yùn)營(yíng)商重定向了下載鏈接或替換了下載內(nèi)容,通常會(huì)導(dǎo)致所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度不一致,因此當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度不一致時(shí),可以判定當(dāng)前下載文件并非目標(biāo)文件。因此當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度不一致時(shí),可以重新向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求。
[0048]本發(fā)明實(shí)施例提供的下載文件的方法,通過(guò)在下載當(dāng)前文件之前,檢驗(yàn)?zāi)繕?biāo)文件的所述第一總字節(jié)長(zhǎng)度與當(dāng)前文件的所述第二總字節(jié)長(zhǎng)度是否一致,來(lái)檢驗(yàn)當(dāng)前下載文件與目標(biāo)文件是否為同一個(gè)文件,所述方法是在下載之前進(jìn)行檢驗(yàn),而不是在下載過(guò)程中請(qǐng)求服務(wù)器進(jìn)行檢驗(yàn),節(jié)約了檢驗(yàn)的時(shí)間,避免了已經(jīng)開(kāi)始下載才發(fā)現(xiàn)當(dāng)前文件并非目標(biāo)文件,避免了浪費(fèi)用戶(hù)流量的問(wèn)題。檢驗(yàn)過(guò)程也無(wú)需服務(wù)器進(jìn)行配合,因此無(wú)需引入新的復(fù)雜的邏輯,并且無(wú)需修改客戶(hù)端與服務(wù)端的接口協(xié)議,只需要預(yù)先重新生成數(shù)據(jù)庫(kù)中目標(biāo)文件對(duì)應(yīng)的下載鏈接即可,這種方式簡(jiǎn)單有效,且一定程度上解決了應(yīng)用文件字節(jié)數(shù)據(jù)錯(cuò)亂或數(shù)據(jù)里混雜著網(wǎng)頁(yè)源碼數(shù)據(jù)導(dǎo)致安裝失敗以及運(yùn)營(yíng)商重定向了下載鏈接導(dǎo)致安裝的應(yīng)用非用戶(hù)預(yù)期的應(yīng)用文件的問(wèn)題。
[0049]圖4示出了本發(fā)明第二實(shí)施例提供的一種下載文件的方法的流程圖,請(qǐng)參閱圖4,本實(shí)施例描述的是客戶(hù)端的處理流程,所述方法包括:
[0050]步驟S401,接收第一服務(wù)器返回的下載鏈接,所述下載鏈接包括目標(biāo)文件的第一總字節(jié)長(zhǎng)度;[0051 ]步驟S402,向與所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求;
[0052]步驟S403,接收所述第二服務(wù)器返回的HTTP響應(yīng)頭信息,所述HTTP響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度;
[0053]可以理解的是,步驟S401至步驟S403的實(shí)施方式可以參考上一實(shí)施例中的步驟S301至步驟S303的實(shí)施方式,此處不再贅述。
[0054]步驟S404,判斷所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度是否一致;
[0055]當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度不一致時(shí),可以判定當(dāng)前下載文件并非目標(biāo)文件。因此當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度不一致時(shí),執(zhí)行步驟S405至步驟S410,當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),執(zhí)行步驟S411。
[0056]步驟S405,判斷重新向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求的次數(shù)是否達(dá)到預(yù)設(shè)次數(shù);
[0057]可以理解的是,考慮到客戶(hù)端重新向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求的次數(shù)太多會(huì)影響文件下載請(qǐng)求的響應(yīng)速度,因此客戶(hù)端需要設(shè)置一個(gè)預(yù)設(shè)次數(shù),當(dāng)重新向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求的次數(shù)沒(méi)有達(dá)到預(yù)設(shè)次數(shù),執(zhí)行步驟S402至步驟S404,否則執(zhí)行步驟S406。
[0058]步驟S406,向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起HTTPS請(qǐng)求。
[0059]可以理解的是,當(dāng)所述目標(biāo)文件的第一總字節(jié)長(zhǎng)度與所述當(dāng)前文件的第二總字節(jié)長(zhǎng)度不一致時(shí),判定當(dāng)前HTTP請(qǐng)求可能被劫持,并且多次重試仍然被劫,此時(shí)采用HTTPS協(xié)議來(lái)發(fā)起下載請(qǐng)求。HTTPS即超文本傳輸安全協(xié)議,該協(xié)議的主要目的是提供對(duì)網(wǎng)絡(luò)服務(wù)器的身份認(rèn)證,保護(hù)交互數(shù)據(jù)的隱私和完整性。因此采用HTTPS進(jìn)行下載請(qǐng)求可以保證下載請(qǐng)求相對(duì)安全,并且被劫持的幾率大大降低。但是,可以理解的是,HTTPS協(xié)議由于每次通信需要加解密,對(duì)服務(wù)器性能開(kāi)銷(xiāo)大,成本高,所以在多次重試HTTP請(qǐng)求未果的情況下才會(huì)使用HTTPS進(jìn)行請(qǐng)求下載。
[0060]可以理解的是,在其他實(shí)施方式中,預(yù)設(shè)次數(shù)也可以為零,S卩,當(dāng)向第二服務(wù)器發(fā)起HTTP請(qǐng)求一次后,若所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度不一致,則可以立即向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起HTTPS請(qǐng)求。
[0061 ] 步驟S407,接收所述第二服務(wù)器返回的HTTPS響應(yīng)頭信息,所述HTTPS響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度;
[0062]步驟S408,判斷所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度是否一致;
[0063]當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度不一致時(shí),執(zhí)行步驟S409,當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),執(zhí)行步驟S411。
[0064]步驟S409,判斷重新向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTPS請(qǐng)求的次數(shù)是否達(dá)到預(yù)設(shè)次數(shù);
[0065]可以理解的是,同樣的,所述預(yù)設(shè)次數(shù)可以為零次。即,這種情況下只會(huì)向與第二服務(wù)器發(fā)起一次下載所述目標(biāo)文件的HTTPS請(qǐng)求。另外,預(yù)設(shè)次數(shù)的設(shè)置也可以是根據(jù)目標(biāo)文件的重要性來(lái)決定,當(dāng)目標(biāo)文件比較重要時(shí),預(yù)設(shè)次數(shù)的值可以設(shè)置較大。
[0066]當(dāng)向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTPS請(qǐng)求的次數(shù)沒(méi)有達(dá)到預(yù)設(shè)次數(shù),執(zhí)行步驟S406至步驟S407,否則執(zhí)行步驟S410。
[0067]步驟S410,顯示用于提示用戶(hù)網(wǎng)絡(luò)異常的信息。
[0068]可以理解的是,通常來(lái)說(shuō),當(dāng)進(jìn)行多次HTTPS請(qǐng)求,仍然失敗的原因,大多數(shù)是由于網(wǎng)絡(luò)繁忙,網(wǎng)絡(luò)中斷或者例如2G/3G網(wǎng)絡(luò)的切換導(dǎo)致的,此時(shí)顯示用于提示用戶(hù)網(wǎng)絡(luò)異常的信息,以使用戶(hù)看到所述提示信息后,可以進(jìn)一步向客戶(hù)端發(fā)起指示。
[0069]步驟S411,開(kāi)始下載所述當(dāng)前文件。
[0070]本發(fā)明實(shí)施例提供的下載文件的方法,除了解決了上一實(shí)施例可以解決的問(wèn)題夕卜,通過(guò)在向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求的次數(shù)達(dá)到預(yù)設(shè)次數(shù)后,向第二服務(wù)器發(fā)起HTTPS請(qǐng)求,進(jìn)一步解決了 HTTP請(qǐng)求多次被劫持而導(dǎo)致下載的當(dāng)前文件并非目標(biāo)文件以及無(wú)法下載的問(wèn)題,提高了下載的成功率。
[0071]圖5示出了本發(fā)明第三實(shí)施例提供的一種下載文件的方法的流程圖,請(qǐng)參閱圖5,本實(shí)施例描述的是客戶(hù)端的處理流程,所述方法包括:
[0072]步驟S501,接收第一服務(wù)器返回的下載鏈接,所述下載鏈接包括目標(biāo)文件的第一總字節(jié)長(zhǎng)度及下載文件的第一數(shù)字簽名;
[0073]其中,第一數(shù)字簽名,是指對(duì)目標(biāo)文件的文件內(nèi)容通過(guò)摘要算法或者哈希算法等雜湊算法進(jìn)行運(yùn)算后求出的一個(gè)固定長(zhǎng)度值,所述固定長(zhǎng)度值即為第一數(shù)字簽名,例如SHA — I簽名,RIPEMD簽名以及Hava簽名等。
[0074]優(yōu)選的,第一數(shù)字簽名可以為MD5簽名。可以理解的,文件的MD5值就像是這個(gè)文件的“數(shù)字指紋”。每個(gè)文件的MD5值是不同的,如果任何人對(duì)文件做了任何改動(dòng),其MD5值也就是對(duì)應(yīng)的“數(shù)字指紋”就會(huì)發(fā)生變化。
[0075]例如目標(biāo)下載文件的下載鏈接為:http://android— apps.25pp.com/fsO 1/2015/01/29/5/0_dd84568d3e5831df 12dac8cedc556e52.apk?size = 19736456&md5 =7call0fl91c0d918fl37efd072123273,
[0076]其中,size = 19736456表示的是該目標(biāo)文件的第一總字節(jié)長(zhǎng)度:19736456,md5 =
7。&11(^191(:0(1918€137 6€(107 2123 27 3表示的是該目標(biāo)文件的第一數(shù)字簽名為:7call0fl91c0d918fl37efd072123273o
[0077]步驟S502,向與所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求;
[0078]步驟S503,接收所述第二服務(wù)器返回的HTTP響應(yīng)頭信息,所述HTTP響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度;
[0079]步驟S504,判斷所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度是否一致;
[0080]當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度不一致時(shí),執(zhí)行步驟S505至步驟S510,當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),執(zhí)行步驟S511至步驟S513。[0081 ]假設(shè)所述HTTP響應(yīng)頭信息中包括的當(dāng)前文件的第二總字節(jié)長(zhǎng)度為:19736456,可以判定出所述第一總字節(jié)長(zhǎng)度與第二總字節(jié)長(zhǎng)度一致,則可以開(kāi)始下載。如果此時(shí)第二總字節(jié)長(zhǎng)度不為19736456,則執(zhí)行步驟S505至步驟S510,所述步驟S505至步驟S510與上一實(shí)施例中的步驟S405至步驟S410實(shí)施方式一致,此處就不再贅述。
[0082]步驟S505,判斷重新向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求的次數(shù)是否達(dá)到預(yù)設(shè)次數(shù);
[0083]當(dāng)向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求的次數(shù)沒(méi)有達(dá)到預(yù)設(shè)次數(shù),執(zhí)行步驟S502至步驟S504,否則執(zhí)行步驟S506。
[0084]步驟S506,向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起HTTPS請(qǐng)求。
[0085]步驟S507,接收所述第二服務(wù)器返回的HTTPS響應(yīng)頭信息,所述HTTPS響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度;
[0086]步驟S508,判斷所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度是否一致;
[0087]當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度不一致時(shí),執(zhí)行步驟S509,當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),執(zhí)行步驟S511至步驟S513。
[0088]步驟S509,判斷重新向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTPS請(qǐng)求的次數(shù)是否達(dá)到預(yù)設(shè)次數(shù);
[0089]當(dāng)重新向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTPS請(qǐng)求的次數(shù)沒(méi)有達(dá)到預(yù)設(shè)次數(shù),執(zhí)行步驟S506至步驟S507,否則執(zhí)行步驟S510。
[0090]步驟S510,顯示用于提示用戶(hù)網(wǎng)絡(luò)異常的信息。
[0091]步驟S511,開(kāi)始下載所述當(dāng)前文件。
[0092]步驟S512,當(dāng)所述當(dāng)前文件下載完成后,計(jì)算所述當(dāng)前文件的第二數(shù)字簽名;判斷所述第一數(shù)字簽名與所述第二數(shù)字簽名是否一致,如果一致,則判定所述當(dāng)前文件為所述目標(biāo)文件,下載成功,否則,下載失敗。
[0093]可以理解的是,有時(shí)候可能會(huì)出現(xiàn)當(dāng)前文件即使被劫持過(guò)、替換過(guò)或者篡改,但是其第二總字節(jié)大小可能恰好與目標(biāo)文件的第一總字節(jié)大小一致,因此在下載完成后,再次檢驗(yàn)所述第一數(shù)字簽名與所述第二數(shù)字簽名是否一致,可以更加確保下載文件的合法性以及完整性。
[0094]例如,當(dāng)下載完成后,根據(jù)與計(jì)算目標(biāo)文件的第一數(shù)字簽名同樣的方法計(jì)算出當(dāng)前文件的第二數(shù)字簽名,如果一致,即當(dāng)前文件的第二數(shù)字簽名為:7call0fl91c0d918fl37efd072123273,則判定所述當(dāng)前文件為所述目標(biāo)文件,下載成功,反之下載失敗。
[0095]步驟S513,若下載失敗,顯示用于提示用戶(hù)重新下載的信息。
[0096]可以理解的是,當(dāng)所述第一數(shù)字簽名與所述第二數(shù)字簽名不一致時(shí),說(shuō)明當(dāng)前文件的內(nèi)容被劫持過(guò),替換過(guò)或者篡改過(guò),因此需要向用戶(hù)顯示用于提示用戶(hù)重新下載的信息,防止用戶(hù)安裝已經(jīng)被劫持過(guò),替換過(guò)或者篡改過(guò)的當(dāng)前文件。
[0097]本發(fā)明實(shí)施例提供的下載文件的方法,除了解決了上兩個(gè)實(shí)施例可以解決的方法夕卜,并且通過(guò)在當(dāng)前文件下載完成后對(duì)當(dāng)前文件的數(shù)字簽名進(jìn)行檢測(cè),進(jìn)一步的確保了下載文件的合法性以及完整性。
[0098]圖6示出了本發(fā)明第四實(shí)施例提供的一種下載文件的方法的流程圖,請(qǐng)參閱圖6,本實(shí)施例描述的是客戶(hù)端的處理流程,所述方法包括:
[0099]步驟S601,接收第一服務(wù)器返回的下載鏈接,所述下載鏈接包括目標(biāo)文件的第一總字節(jié)長(zhǎng)度;
[0100]步驟S602,根據(jù)所述第一總字節(jié)長(zhǎng)度,分配多個(gè)線程;
[0101]可以理解的是,對(duì)于當(dāng)前文件的下載可以采用多線程的方式或者單線程的方式進(jìn)行下載,而是否采用多線程,有許多策略可以選擇,可以根據(jù)下載速度與分段數(shù)及文件大小的關(guān)聯(lián)性的統(tǒng)計(jì)對(duì)比來(lái)確定,比較簡(jiǎn)單有效的是根據(jù)所述第一總字節(jié)長(zhǎng)度來(lái)決定。例如第一總字節(jié)長(zhǎng)度為256個(gè)字節(jié)時(shí)的采用單線程,第一總字節(jié)長(zhǎng)度大于256字節(jié)且小于512字節(jié)時(shí),采用雙線程,第一總字節(jié)長(zhǎng)度大于512字節(jié)時(shí)采用三線程??梢岳斫獾氖?,選擇多線程的實(shí)施方式可以有多種,并不局限于上述實(shí)施方式。
[0102]步驟S603,通過(guò)所述多個(gè)線程分別向與所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求;
[0103]步驟S604,通過(guò)所述多個(gè)線程分別接收所述第二服務(wù)器返回的HTTP響應(yīng)頭信息,所述HTTP響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度;
[0104]步驟S605,當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),每個(gè)線程分別開(kāi)始下載所述當(dāng)前文件。
[0105]可以理解的是,所述步驟S603至步驟S605與第一實(shí)施例中的步驟S302至步驟S304中的區(qū)別在于,本實(shí)施例是采用多線程進(jìn)行當(dāng)前文件的分段下載,在每個(gè)線程中實(shí)現(xiàn)步驟S302至步驟S304中的方法,相關(guān)內(nèi)容就不再贅述。
[0106]本發(fā)明實(shí)施例提供的下載文件的方法,除了可以解決第一實(shí)施例可以解決的問(wèn)題,還通過(guò)多線程進(jìn)行分段下載,加快了下載文件的速度,并且每個(gè)線程都會(huì)進(jìn)行所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度的檢驗(yàn),進(jìn)一步提高了用戶(hù)下載的體驗(yàn)。
[0107]圖7示出了本發(fā)明第五實(shí)施例提供的一種下載文件的方法的流程圖,請(qǐng)參閱圖7,本實(shí)施例描述的是客戶(hù)端的處理流程,所述方法包括:
[0108]步驟S701,接收第一服務(wù)器返回的下載鏈接,所述下載鏈接包括目標(biāo)文件的第一總字節(jié)長(zhǎng)度;
[0109]步驟S702,根據(jù)所述第一總字節(jié)長(zhǎng)度,分配多個(gè)線程;
[0110]步驟S703,通過(guò)所述多個(gè)線程分別向與所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求;
[0111]步驟S704,通過(guò)所述多個(gè)線程分別接收所述第二服務(wù)器返回的HTTP響應(yīng)頭信息,所述HTTP響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度;
[0112]步驟S705,每個(gè)線程判斷所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度是否一致;
[0113]當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度不一致時(shí),判定出不一致的線程執(zhí)行步驟S706至步驟S711,當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),執(zhí)行步驟S712。
[0114]步驟S706,判斷重新向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求的次數(shù)是否達(dá)到預(yù)設(shè)次數(shù);
[0115]當(dāng)向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求的次數(shù)沒(méi)有達(dá)到預(yù)設(shè)次數(shù),執(zhí)行步驟S703至步驟S705,否則執(zhí)行步驟S707。
[0116]步驟S707,再次向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起HTTP請(qǐng)求;
[0117]步驟S708,接收所述第二服務(wù)器返回的HTTPS響應(yīng)頭信息,所述HTTPS響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度;
[0118]步驟S709,判斷所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度是否一致;
[0119]當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度不一致時(shí),執(zhí)行步驟S710,當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),執(zhí)行步驟S711。
[0120]步驟S710,判斷重新向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTPS請(qǐng)求的次數(shù)是否達(dá)到預(yù)設(shè)次數(shù);
[0121]當(dāng)向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTPS請(qǐng)求的次數(shù)沒(méi)有達(dá)到預(yù)設(shè)次數(shù),執(zhí)行步驟S707至步驟S708,否則執(zhí)行步驟S711。
[0122]步驟S711,顯示用于提示用戶(hù)網(wǎng)絡(luò)異常的信息。
[0123]步驟S712,每個(gè)線程開(kāi)始下載所述當(dāng)前文件。
[0124]可以理解的是,所述步驟S703至步驟S712與第二實(shí)施例中的步驟S402至步驟S411中的區(qū)別在于,本實(shí)施例是采用多線程進(jìn)行當(dāng)前文件的分段下載,在每個(gè)線程中實(shí)現(xiàn)步驟S402至步驟S411中的方法,相關(guān)內(nèi)容就不再此贅述。
[0125]本發(fā)明實(shí)施例提供的下載文件的方法,除了可以解決第二實(shí)施例可以解決的問(wèn)題,還通過(guò)多線程進(jìn)行分段下載,加快了下載文件的速度,并且每個(gè)線程都會(huì)在向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求的次數(shù)達(dá)到預(yù)設(shè)次數(shù)后,向第二服務(wù)器發(fā)起HTTPS請(qǐng)求,進(jìn)一步解決了HTTP請(qǐng)求多次被劫持而導(dǎo)致下載的當(dāng)前文件并非目標(biāo)文件以及無(wú)法下載的問(wèn)題,提高了下載的成功率,進(jìn)一步提高了用戶(hù)下載的體驗(yàn)。
[0126]圖8示出了本發(fā)明第六實(shí)施例提供的一種下載文件的方法的流程圖,請(qǐng)參閱圖8,本實(shí)施例描述的是客戶(hù)端的處理流程,所述方法包括:
[0127]步驟S801,接收第一服務(wù)器返回的下載鏈接,所述下載鏈接包括目標(biāo)文件的第一總字節(jié)長(zhǎng)度;
[0128]步驟S802,根據(jù)所述第一總字節(jié)長(zhǎng)度,分配多個(gè)線程;
[0129]步驟S803,通過(guò)所述多個(gè)線程分別向與所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求;
[0130]步驟S804,通過(guò)所述多個(gè)線程分別接收所述第二服務(wù)器返回的HTTP響應(yīng)頭信息,所述HTTP響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度;
[0131]步驟S805,每個(gè)線程判斷所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度是否一致;
[0132]當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度不一致時(shí),判定出不一致的線程執(zhí)行步驟S806至步驟S811,當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),執(zhí)行步驟S812o
[0133]步驟S806,判斷重新向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求的次數(shù)是否達(dá)到預(yù)設(shè)次數(shù);
[0134]當(dāng)向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求的次數(shù)沒(méi)有達(dá)到預(yù)設(shè)次數(shù),執(zhí)行步驟S803至步驟S805,否則執(zhí)行步驟S807。
[0135]步驟S807,再次向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起HTTP請(qǐng)求;
[0136]步驟S808,接收所述第二服務(wù)器返回的HTTPS響應(yīng)頭信息,所述HTTPS響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度;
[0137]步驟S809,判斷所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度是否一致;
[0138]當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度不一致時(shí),執(zhí)行步驟S810,當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),執(zhí)行步驟S811。
[0139]步驟S810,判斷重新向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTPS請(qǐng)求的次數(shù)是否達(dá)到預(yù)設(shè)次數(shù);
[0140]當(dāng)向與第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTPS請(qǐng)求的次數(shù)沒(méi)有達(dá)到預(yù)設(shè)次數(shù),執(zhí)行步驟S807至步驟S808,否則執(zhí)行步驟S811。
[0141]步驟S811,顯示用于提示用戶(hù)網(wǎng)絡(luò)異常的信息。
[0142]步驟S812,每個(gè)線程開(kāi)始下載所述當(dāng)前文件.
[0143]可以理解的是,每個(gè)線程下載的內(nèi)容為當(dāng)前文件的一部分。例如:當(dāng)前文件大小100個(gè)字節(jié),分3個(gè)線程進(jìn)行下載,那么第一線程就請(qǐng)求下載O — 33個(gè)字節(jié),第二線程就請(qǐng)求下載34 — 67個(gè)字節(jié),第三線程就請(qǐng)求下載68 — 100的字節(jié)。
[0144]步驟S813,當(dāng)每個(gè)線程下載完畢,即當(dāng)前文件下載完畢,計(jì)算所述當(dāng)前文件的第二數(shù)字簽名;判斷所述第一數(shù)字簽名與所述第二數(shù)字簽名是否一致,如果一致,則判定所述當(dāng)前文件為所述目標(biāo)文件,下載成功,否則,下載失敗。
[0145]步驟S814,當(dāng)所述當(dāng)前文件下載失敗,顯示用于提示用戶(hù)重新下載的信息。
[0146]可以理解的是,所述步驟S803至步驟S814與第二實(shí)施例中的步驟S502至步驟S513中的區(qū)別在于,本實(shí)施例是采用多線程進(jìn)行當(dāng)前文件的分段下載,在每個(gè)線程中實(shí)現(xiàn)步驟S502至步驟S513中的方法,相關(guān)內(nèi)容就不再此贅述。
[0147]本發(fā)明實(shí)施例提供的下載文件的方法,除了可以解決第三實(shí)施例可以解決的問(wèn)題,還通過(guò)多線程進(jìn)行分段下載,加快了下載文件的速度,并且在每個(gè)線程下載完成后,會(huì)對(duì)當(dāng)前文件下載完成后對(duì)當(dāng)前文件的數(shù)字簽名進(jìn)行檢測(cè),確保當(dāng)前文件與目標(biāo)文件一致,確保分發(fā)的正確性,進(jìn)一步提高了用戶(hù)下載的體驗(yàn)。
[0148]請(qǐng)參閱圖9,是本發(fā)明實(shí)施例提供的下載文件的裝置200的功能模塊示意圖。所述下載文件的裝置200包括第一接收模塊201,發(fā)送模塊202,第二接收模塊203以及下載模塊204。
[0149]所述第一接收模塊201,用于接收第一服務(wù)器返回的下載鏈接,所述下載鏈接包括目標(biāo)文件的第一總字節(jié)長(zhǎng)度;
[0150]所述發(fā)送模塊202,用于向與所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求;
[0151]所述第二接收模塊203,用于接收所述第二服務(wù)器返回的HTTP響應(yīng)頭信息,所述HTTP響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度;
[0152]所述下載模塊204,用于當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),開(kāi)始下載所述當(dāng)前文件。
[0153]考慮當(dāng)HTTP請(qǐng)求會(huì)被劫持后還需要繼續(xù)下載文件,因此,優(yōu)選的,所述裝置還包括:第一請(qǐng)求模塊205,所述第一請(qǐng)求模塊205,用于當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度不一致時(shí),再次向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起HTTP請(qǐng)求。
[0154]進(jìn)一步的,考慮如果發(fā)起多次HTTP請(qǐng)求仍被劫持后,還需要繼續(xù)下載文件,因此,優(yōu)選的,所述裝置還包括:第二請(qǐng)求模塊206,所述第二請(qǐng)求模塊206,用于向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起預(yù)設(shè)次數(shù)的HTTP請(qǐng)求后,所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度仍不一致時(shí),則向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起HTTPS請(qǐng)求。
[0155]進(jìn)一步的,考慮到下載到的當(dāng)前文件跟目標(biāo)文件的總字節(jié)大小如果一致,但是還可能出現(xiàn)文件的內(nèi)容并不一致的情況,因此,優(yōu)選的所述第一接收模塊201接收到的所述下載鏈接還包括下載文件的第一數(shù)字簽名,所述裝置還包括判斷模塊207,所述判斷模塊207,用于在所述下載模塊204開(kāi)始下載所述當(dāng)前文件之后,當(dāng)所述當(dāng)前文件下載完成后,計(jì)算所述當(dāng)前文件的第二數(shù)字簽名;判斷所述第一數(shù)字簽名與所述第二數(shù)字簽名是否一致,如果一致,則判定所述當(dāng)前文件為所述目標(biāo)文件,下載成功,否則,下載失敗。
[0156]進(jìn)一步的,考慮到目標(biāo)文件的大小不一,可能出現(xiàn)較大文件時(shí),采用多線程能夠加快下載的速度,因此優(yōu)選的,所述裝置還包括分配模塊208,所述分配模塊208用于根據(jù)所述第一總字節(jié)長(zhǎng)度,分配多個(gè)線程;所述發(fā)送模塊202,還用于通過(guò)所述多個(gè)線程分別向與所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求;所述第二接收模塊203,還用于通過(guò)所述多個(gè)線程分別接收所述第二服務(wù)器返回的HTTP響應(yīng)頭信息,所述HTTP響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度;所述下載模塊204,還用于當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),每個(gè)線程分別開(kāi)始下載所述當(dāng)前文件。所述第一請(qǐng)求模塊205,還用于當(dāng)判定出所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度不一致時(shí),判定出不一致的線程再次向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起HTTP請(qǐng)求。所述第二請(qǐng)求模塊206,還用于在所述判定出不一致的線程向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起預(yù)設(shè)次數(shù)的HTTP請(qǐng)求之后,所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度仍不一致時(shí),所述判定出不一致的線程向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起HTTPS請(qǐng)求。
[0157]以上各模塊可以是由軟件代碼實(shí)現(xiàn),此時(shí),上述的各模塊可存儲(chǔ)于用戶(hù)終端100的存儲(chǔ)器102內(nèi)。以上各模塊同樣可以由硬件例如集成電路芯片實(shí)現(xiàn)。
[0158]需要說(shuō)明的是,本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可。
[0159]本發(fā)明實(shí)施例所提供的下載文件的裝置,其實(shí)現(xiàn)原理及產(chǎn)生的技術(shù)效果和前述方法實(shí)施例相同,為簡(jiǎn)要描述,裝置實(shí)施例部分未提及之處,可參考前述方法實(shí)施例中相應(yīng)內(nèi)容。
[0160]在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,也可以通過(guò)其它的方式實(shí)現(xiàn)。以上所描述的裝置實(shí)施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的裝置、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)方式中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專(zhuān)用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專(zhuān)用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
[0161]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能模塊可以集成在一起形成一個(gè)獨(dú)立的部分,也可以是各個(gè)模塊單獨(dú)存在,也可以?xún)蓚€(gè)或兩個(gè)以上模塊集成形成一個(gè)獨(dú)立的部分。
[0162]所述功能如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤(pán)、移動(dòng)硬盤(pán)、只讀存儲(chǔ)器(R0M,Read — Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。需要說(shuō)明的是,在本文中,諸如第一和第二等之類(lèi)的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0163]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類(lèi)似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步定義和解釋。
[0164]以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種下載文件的方法,其特征在于,所述方法包括: 接收第一服務(wù)器返回的下載鏈接,所述下載鏈接包括目標(biāo)文件的第一總字節(jié)長(zhǎng)度; 向與所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求; 接收所述第二服務(wù)器返回的HTTP響應(yīng)頭信息,所述HTTP響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度; 當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),開(kāi)始下載所述當(dāng)前文件。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度不一致時(shí),再次向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起HTTP請(qǐng)求。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起預(yù)設(shè)次數(shù)的HTTP請(qǐng)求后,所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度仍不一致時(shí),則向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起HTTPS請(qǐng)求。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起HTTPS請(qǐng)求之后,所述方法還包括: 當(dāng)所述HTTPS請(qǐng)求失敗,顯示用于提示用戶(hù)網(wǎng)絡(luò)異常的信息。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述下載鏈接還包括下載文件的第一數(shù)字簽名,在所述開(kāi)始下載所述當(dāng)前文件之后,所述方法還包括: 當(dāng)所述當(dāng)前文件下載完成后,計(jì)算所述當(dāng)前文件的第二數(shù)字簽名; 判斷所述第一數(shù)字簽名與所述第二數(shù)字簽名是否一致,如果一致,則判定所述當(dāng)前文件為所述目標(biāo)文件,下載成功,否則,下載失敗。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,在所述下載失敗之后,所述方法還包括:顯示用于提示用戶(hù)重新下載的信息。7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述第一數(shù)字簽名和第二數(shù)字簽名為MD5簽名。8.根據(jù)權(quán)利要求1所述的方法,其特征在于,向與所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求,接收所述第二服務(wù)器返回的HTTP響應(yīng)頭信息,所述HTTP響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度,當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),開(kāi)始下載所述當(dāng)前文件,具體包括: 根據(jù)所述第一總字節(jié)長(zhǎng)度,分配多個(gè)線程; 通過(guò)所述多個(gè)線程分別向與所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求; 通過(guò)所述多個(gè)線程分別接收所述第二服務(wù)器返回的HTTP響應(yīng)頭信息,所述HTTP響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度; 當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),每個(gè)線程分別開(kāi)始下載所述當(dāng)前文件。9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述方法還包括:當(dāng)判定出所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度不一致時(shí),判定出不一致的線程再次向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起HTTP請(qǐng)求。10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述方法還包括:在所述判定出不一致的線程向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起預(yù)設(shè)次數(shù)的HTTP請(qǐng)求之后,所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度仍不一致時(shí),所述判定出不一致的線程向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起HTTPS請(qǐng)求。11.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一服務(wù)器與所述第二服務(wù)器為同一服務(wù)器。12.一種下載文件的裝置,其特征在于,所述裝置包括: 第一接收模塊,用于接收第一服務(wù)器返回的下載鏈接,所述下載鏈接包括目標(biāo)文件的第一總字節(jié)長(zhǎng)度; 發(fā)送模塊,用于向與所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求; 第二接收模塊,用于接收所述第二服務(wù)器返回的HTTP響應(yīng)頭信息,所述HTTP響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度; 下載模塊,用于當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),開(kāi)始下載所述當(dāng)前文件。13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述裝置還包括:第一請(qǐng)求模塊, 所述第一請(qǐng)求模塊,用于當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度不一致時(shí),再次向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起HTTP請(qǐng)求。14.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述裝置還包括:第二請(qǐng)求模塊, 所述第二請(qǐng)求模塊,用于向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起預(yù)設(shè)次數(shù)的HTTP請(qǐng)求后,所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度仍不一致時(shí),則向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起HTTPS請(qǐng)求。15.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述第一接收模塊接收到的所述下載鏈接還包括下載文件的第一數(shù)字簽名,所述裝置還包括判斷模塊, 所述判斷模塊,用于在所述下載模塊開(kāi)始下載所述當(dāng)前文件之后,當(dāng)所述當(dāng)前文件下載完成后,計(jì)算所述當(dāng)前文件的第二數(shù)字簽名;判斷所述第一數(shù)字簽名與所述第二數(shù)字簽名是否一致,如果一致,則判定所述當(dāng)前文件為所述目標(biāo)文件,下載成功,否則,下載失敗。16.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述裝置還包括分配模塊,所述分配模塊用于根據(jù)所述第一總字節(jié)長(zhǎng)度,分配多個(gè)線程;所述發(fā)送模塊,還用于通過(guò)所述多個(gè)線程分別向與所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求;所述第二接收模塊,還用于通過(guò)所述多個(gè)線程分別接收所述第二服務(wù)器返回的HTTP響應(yīng)頭信息,所述HTTP響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度;所述下載模塊,還用于當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),每個(gè)線程分別開(kāi)始下載所述當(dāng)前文件。17.根據(jù)權(quán)利要求16所述的裝置,其特征在于,所述第一請(qǐng)求模塊,還用于當(dāng)判定出所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度不一致時(shí),判定出不一致的線程再次向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起HTTP請(qǐng)求。18.根據(jù)權(quán)利要求17所述的裝置,其特征在于,所述第二請(qǐng)求模塊,還用于在所述判定出不一致的線程向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起預(yù)設(shè)次數(shù)的HTTP請(qǐng)求之后,所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度仍不一致時(shí),所述判定出不一致的線程向所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起HTTPS請(qǐng)求。19.一種用戶(hù)終端,其特征在于,所述用戶(hù)終端包括處理器以及存儲(chǔ)器,所述存儲(chǔ)器耦接到所述處理器,所述存儲(chǔ)器存儲(chǔ)指令,當(dāng)所述指令由所述處理器執(zhí)行時(shí)使所述用戶(hù)終端執(zhí)行以下操作: 接收第一服務(wù)器返回的下載鏈接,所述下載鏈接包括目標(biāo)文件的第一總字節(jié)長(zhǎng)度; 向與所述下載鏈接對(duì)應(yīng)的第二服務(wù)器發(fā)起下載所述目標(biāo)文件的HTTP請(qǐng)求; 接收所述第二服務(wù)器返回的HTTP響應(yīng)頭信息,所述HTTP響應(yīng)頭信息包括當(dāng)前文件的第二總字節(jié)長(zhǎng)度; 當(dāng)所述第一總字節(jié)長(zhǎng)度與所述第二總字節(jié)長(zhǎng)度一致時(shí),開(kāi)始下載所述當(dāng)前文件。
【文檔編號(hào)】H04L29/08GK105897911SQ201610345945
【公開(kāi)日】2016年8月24日
【申請(qǐng)日】2016年5月20日
【發(fā)明人】蔡燦
【申請(qǐng)人】廣州優(yōu)視網(wǎng)絡(luò)科技有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1