类似迅雷这种下载器,是怎么实现HTTP分块下载的?

qq_26465119 2016-03-11 02:08:42
小弟最近,在搞一个服务器,基于HTTP协议,写到下载这一块,想到多线程分块下载,效率提高不少。
但是在网上却没有找到关于HTTP分块下载的资料。
我有卡在了,标准的HTTP协议是怎么将数据块的起始位置和数据块大小传给服务器的呢?
...全文
308 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bsnry 2016-03-11
  • 打赏
  • 举报
回复
mark,学习一下
赵4老师 2016-03-11
  • 打赏
  • 举报
回复
使用wireshark抓迅雷下载时的所有包!
qq_26465119 2016-03-11
  • 打赏
  • 举报
回复
引用 2 楼 iyomumx 的回复:
在请求中附加Range标头,详细请搜索 http range
谢谢你的回答,确实用Range标头可以实现,在下还有一问,那怎么在下载前获得这个文件的大小呢?
qq_26465119 2016-03-11
  • 打赏
  • 举报
回复
分块下载的思路确实是这样,问题在于我不明白http要实现分块下载的话,每条tcp链接下载文件的起始位置和长度怎么传给服务器。 难道自己在get请求中带参数,然后服务器根据参数解析吗? 如果是这样,那要服务器支持,解析这个参数啊?那迅雷这里的下载软件是怎么做到下载时分块下载的呢?
qq_26465119 2016-03-11
  • 打赏
  • 举报
回复
引用 2 楼 iyomumx 的回复:
在请求中附加Range标头,详细请搜索 http range
谢谢,我去看一下!
iyomumx 2016-03-11
  • 打赏
  • 举报
回复
在请求中附加Range标头,详细请搜索 http range
bsnry 2016-03-11
  • 打赏
  • 举报
回复
引用 楼主 qq_26465119 的回复:
小弟最近,在搞一个服务器,基于HTTP协议,写到下载这一块,想到多线程分块下载,效率提高不少。 但是在网上却没有找到关于HTTP分块下载的资料。 我有卡在了,标准的HTTP协议是怎么将数据块的起始位置和数据块大小传给服务器的呢?
没研究过,http下载文件,要下载文件,服务器重新开个端口,让客户端建立多个tcp连接到该端口上。 每条tcp下载一快文件如何? 最终都下载完后,就合并文件

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧