资讯专栏INFORMATION COLUMN

从放弃迅雷和IDM到自己开发下载工具

terro / 2823人阅读

摘要:前言在这个网络带宽飞速增长的年代,下载文件要充分利用好网速就得用到下载工具,比如迅雷。本人两年迅雷年费会员在离线下载越来越形如虚设的情况下,选择投入了的怀抱,然而丑陋的界面和破解版的无限弹框让我产生了开发一款属于自己下载器的想法。

前言

在这个网络带宽飞速增长的年代,下载文件要充分利用好网速就得用到下载工具,比如迅雷、IDM。然而贫穷限制了下载速度,这两个下载软件不花钱毫无体验可言。本人两年迅雷年费会员在离线下载越来越形如虚设的情况下,选择投入了IDM的怀抱,然而IDM丑陋的界面和破解版的无限弹框让我产生了开发一款属于自己下载器的想法。

成果

没图说个xx,下图是在20M带宽的情况下载网盘文件的过程,可以看到网速基本跑满。

下载试用,需要JAVA8+运行环境。
启动:

java -jar proxyee-down-1.3.jar
访问http://127.0.0.1:9999,点击ProxyeeRoot ca.crt下载证书并安装到受信任的根证书颁发机构中
设置浏览器http代理为127.0.0.1:9999即可
关于证书导入

windows系统

访问http://127.0.0.1:9999,下载证书,要选择受信任的根证书颁发机构目录

安卓

原生浏览器访问http://serverIp:9999,下载证书

介绍

本下载器开源,代码托管在proxyee-down,是一款基于http代理服务器嗅探http下载请求的下载工具,支持插件化开发,目前内置百度云大文件下载限制插件百度云合并下载限制插件

技术简介

本项目使用java+netty+spring boot+vue.js+element ui编写,这里只谈一谈核心的技术点,细节请参考源码。

http代理
基于http代理服务器来实现下载请求的嗅探,实现了https的报文解密,在代理服务器嗅探到下载请求头时,进行拦截处理。

//例如Content-Disposition请求头拦截
Content-Disposition,attachment;filename=FileName.txt

之后修改响应体跳转到前端下载页面

HTTP/1.1 200 OK
Conten-type:text/html
Conten-length:129

http断点下载
拦截到下载请求之后,自动试探下载请求是否支持http断点下载。

//发送range请求头,下载一个字节
range:bytes=0-0

若支持断点下载则可开启分段下载

//返回206响应码
HTTP/1.1 206 Partial Content

根据前端填写的下载段数计算出每个请求的下载范围

//例如文件总大小为10byte分成2段下载
//第一段请求头
range:bytes=0-4
//第二段请求头
range:bytes=5-9

下载完之后所有段落按顺序合并,看看这里是不是很像IDM,其实原理是一样的。

后记

在写此下载器的过程中对http和https协议又有了新的认识,特别是https若不能实现https的报文解密就做不到https下载请求的嗅探,在熟悉https协议后采用MITM(中间人攻击)动态生成ssl证书的方式,来对https的报文进行解密。http代理服务器核心已经独立出来了,托管在proxyee,可以轻易的对http(s)协议进行拦截和处理。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/70741.html

相关文章

  • Segmentfault JAVA文章 收藏量TOP20

    摘要:前言从号开始在写下第一篇文章说是笔记还差不多,惊奇地收到有人收藏我的文章的消息,觉得有点开心。突然脑子抽到想爬下里标签下的文章有多少,哪篇被收藏最多,哪篇被点赞最多。。。现在和大家分享下,收藏量前的文章,被那么多人收藏应该是篇值得看的文章。 前言 从18号开始在sf写下第一篇文章(说是笔记还差不多),惊奇地收到有人收藏我的文章的消息,觉得有点开心。突然脑子抽到想爬下sf里JAVA标签下...

    zhaofeihao 评论0 收藏0
  • 迅雷星域云发布云计算新产品 与爱奇艺达成战略合作

    摘要:据了解,迅雷于月日晚间对外发布财报。此次迅雷再发星域云新产品,实力自然不容小觑,再加之与刚成功上市的爱奇艺达成战略合作,未来发展值得期待。5月16日,迅雷正式对外发布星域云和迅雷链开放平台。星域云将面向所有企业开放三大云计算产品-边缘计算、函数计算和CDN共享版。其中边缘计算基于Docker技术,向企业开放150+节点资源,CDN共享版带宽成本只有传统CDN 的30%.网心科技现已与爱奇艺共...

    Markxu 评论0 收藏0
  • 曾金龙:迅雷云的Docker开发实践

    摘要:问能否谈一下迅雷云使用的过程其实最初的时候,迅雷团队对是怀有谨慎的态度的。三调度算法是迅雷云定制优化的。迅雷在使用这方面一直没有把数据层面交给迅雷云之外的系统。 非商业转载请注明作译者、出处,并保留本文的原始链接:http://www.ituring.com.cn/article/201256 曾金龙就职于迅雷网络,是国内覆盖面最广的迅雷P2P引擎核心研发成员。他毕业于中山大...

    iflove 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<