摘要:前言在這個(gè)網(wǎng)絡(luò)帶寬飛速增長(zhǎng)的年代,下載文件要充分利用好網(wǎng)速就得用到下載工具,比如迅雷。本人兩年迅雷年費(fèi)會(huì)員在離線下載越來(lái)越形如虛設(shè)的情況下,選擇投入了的懷抱,然而丑陋的界面和破解版的無(wú)限彈框讓我產(chǎn)生了開(kāi)發(fā)一款屬于自己下載器的想法。
前言
在這個(gè)網(wǎng)絡(luò)帶寬飛速增長(zhǎng)的年代,下載文件要充分利用好網(wǎng)速就得用到下載工具,比如迅雷、IDM。然而貧窮限制了下載速度,這兩個(gè)下載軟件不花錢毫無(wú)體驗(yàn)可言。本人兩年迅雷年費(fèi)會(huì)員在離線下載越來(lái)越形如虛設(shè)的情況下,選擇投入了IDM的懷抱,然而IDM丑陋的界面和破解版的無(wú)限彈框讓我產(chǎn)生了開(kāi)發(fā)一款屬于自己下載器的想法。
成果沒(méi)圖說(shuō)個(gè)xx,下圖是在20M帶寬的情況下載網(wǎng)盤(pán)文件的過(guò)程,可以看到網(wǎng)速基本跑滿。
下載試用,需要JAVA8+運(yùn)行環(huán)境。
啟動(dòng):
java -jar proxyee-down-1.3.jar 訪問(wèn)http://127.0.0.1:9999,點(diǎn)擊ProxyeeRoot ca.crt下載證書(shū)并安裝到受信任的根證書(shū)頒發(fā)機(jī)構(gòu)中 設(shè)置瀏覽器http代理為127.0.0.1:9999即可關(guān)于證書(shū)導(dǎo)入
windows系統(tǒng)
訪問(wèn)http://127.0.0.1:9999,下載證書(shū),要選擇受信任的根證書(shū)頒發(fā)機(jī)構(gòu)目錄
安卓
用原生瀏覽器訪問(wèn)http://serverIp:9999,下載證書(shū)
介紹本下載器開(kāi)源,代碼托管在proxyee-down,是一款基于http代理服務(wù)器嗅探http下載請(qǐng)求的下載工具,支持插件化開(kāi)發(fā),目前內(nèi)置百度云大文件下載限制插件和百度云合并下載限制插件。
技術(shù)簡(jiǎn)介本項(xiàng)目使用java+netty+spring boot+vue.js+element ui編寫(xiě),這里只談一談核心的技術(shù)點(diǎn),細(xì)節(jié)請(qǐng)參考源碼。
http代理
基于http代理服務(wù)器來(lái)實(shí)現(xiàn)下載請(qǐng)求的嗅探,實(shí)現(xiàn)了https的報(bào)文解密,在代理服務(wù)器嗅探到下載請(qǐng)求頭時(shí),進(jìn)行攔截處理。
//例如Content-Disposition請(qǐng)求頭攔截 Content-Disposition,attachment;filename=FileName.txt
之后修改響應(yīng)體跳轉(zhuǎn)到前端下載頁(yè)面
HTTP/1.1 200 OK Conten-type:text/html Conten-length:129
http斷點(diǎn)下載
攔截到下載請(qǐng)求之后,自動(dòng)試探下載請(qǐng)求是否支持http斷點(diǎn)下載。
//發(fā)送range請(qǐng)求頭,下載一個(gè)字節(jié) range:bytes=0-0
若支持?jǐn)帱c(diǎn)下載則可開(kāi)啟分段下載
//返回206響應(yīng)碼 HTTP/1.1 206 Partial Content
根據(jù)前端填寫(xiě)的下載段數(shù)計(jì)算出每個(gè)請(qǐng)求的下載范圍
//例如文件總大小為10byte分成2段下載 //第一段請(qǐng)求頭 range:bytes=0-4 //第二段請(qǐng)求頭 range:bytes=5-9
下載完之后所有段落按順序合并,看看這里是不是很像IDM,其實(shí)原理是一樣的。
后記在寫(xiě)此下載器的過(guò)程中對(duì)http和https協(xié)議又有了新的認(rèn)識(shí),特別是https若不能實(shí)現(xiàn)https的報(bào)文解密就做不到https下載請(qǐng)求的嗅探,在熟悉https協(xié)議后采用MITM(中間人攻擊)動(dòng)態(tài)生成ssl證書(shū)的方式,來(lái)對(duì)https的報(bào)文進(jìn)行解密。http代理服務(wù)器核心已經(jīng)獨(dú)立出來(lái)了,托管在proxyee,可以輕易的對(duì)http(s)協(xié)議進(jìn)行攔截和處理。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/70741.html
摘要:前言從號(hào)開(kāi)始在寫(xiě)下第一篇文章說(shuō)是筆記還差不多,驚奇地收到有人收藏我的文章的消息,覺(jué)得有點(diǎn)開(kāi)心。突然腦子抽到想爬下里標(biāo)簽下的文章有多少,哪篇被收藏最多,哪篇被點(diǎn)贊最多。?!,F(xiàn)在和大家分享下,收藏量前的文章,被那么多人收藏應(yīng)該是篇值得看的文章。 前言 從18號(hào)開(kāi)始在sf寫(xiě)下第一篇文章(說(shuō)是筆記還差不多),驚奇地收到有人收藏我的文章的消息,覺(jué)得有點(diǎn)開(kāi)心。突然腦子抽到想爬下sf里JAVA標(biāo)簽下...
摘要:據(jù)了解,迅雷于月日晚間對(duì)外發(fā)布財(cái)報(bào)。此次迅雷再發(fā)星域云新產(chǎn)品,實(shí)力自然不容小覷,再加之與剛成功上市的愛(ài)奇藝達(dá)成戰(zhàn)略合作,未來(lái)發(fā)展值得期待。5月16日,迅雷正式對(duì)外發(fā)布星域云和迅雷鏈開(kāi)放平臺(tái)。星域云將面向所有企業(yè)開(kāi)放三大云計(jì)算產(chǎn)品-邊緣計(jì)算、函數(shù)計(jì)算和CDN共享版。其中邊緣計(jì)算基于Docker技術(shù),向企業(yè)開(kāi)放150+節(jié)點(diǎn)資源,CDN共享版帶寬成本只有傳統(tǒng)CDN 的30%.網(wǎng)心科技現(xiàn)已與愛(ài)奇藝共...
摘要:?jiǎn)柲芊裾勔幌卵咐自剖褂玫倪^(guò)程其實(shí)最初的時(shí)候,迅雷團(tuán)隊(duì)對(duì)是懷有謹(jǐn)慎的態(tài)度的。三調(diào)度算法是迅雷云定制優(yōu)化的。迅雷在使用這方面一直沒(méi)有把數(shù)據(jù)層面交給迅雷云之外的系統(tǒng)。 非商業(yè)轉(zhuǎn)載請(qǐng)注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/201256 曾金龍就職于迅雷網(wǎng)絡(luò),是國(guó)內(nèi)覆蓋面最廣的迅雷P2P引擎核心研發(fā)成員。他畢業(yè)于中山大...
閱讀 2939·2023-04-26 02:49
閱讀 3487·2021-11-25 09:43
閱讀 3542·2021-10-09 09:43
閱讀 3073·2021-09-28 09:44
閱讀 2490·2021-09-22 15:29
閱讀 4615·2021-09-14 18:02
閱讀 2815·2021-09-03 10:48
閱讀 3453·2019-08-30 12:47