chrome是如何实现下载文件时,点“暂停”之后,再点“继续”能继续下载。

Torreson 2017-05-02 05:24:43
chrome是如何实现下载文件时,点“暂停”之后,再点“继续”能继续下载。即使是断开网络,在重接网络也不受影响,这是什么原理??
具体例子看:https://q.cnblogs.com/q/88709/
...全文
3991 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Torreson 2017-06-10
  • 打赏
  • 举报
回复
总结: 1. 本地有临时下载文件 2. 短时间内点继续,利用的是TCP滑动窗口的特性(与服务器未断开) 2. 长时间之后点继续,再次发请求,带range头,继续下载剩余部分(与服务器断开)
wjyiooo 2017-06-02
  • 打赏
  • 举报
回复 1
引用 4 楼 wjyiooo 的回复:
chrome 版本58 抓包确认,chrome点击暂停的时候会发送一系列窗口变动应答,将窗口降到5,并且不再应答ACK包。 当带点击恢复的时候只是重新发送ACK给服务器,同时将窗口重新设置为256。 以上可以确认它的“续传”只是利用TCP滑动窗口的特性,跟断不断网没关系,也不属于真正意义的断点续传功能(一般用range头部实现)。当然如果你中断网络超过了服务器的TCP连接超时时间那么就不能续传了,而且如果关闭浏览器即使网络非常正常也不能续传(也是因为TCP连接断了)。 上面有人说RANGE头部的,迅雷、火狐是利用这个,它们才是真正的断点续传。
发现有部分错误。在等待足够长时间让TCP连接关掉后,chrome就可以断点续传了,原理也是头部带range。
wjyiooo 2017-06-02
  • 打赏
  • 举报
回复
chrome 版本58 抓包确认,chrome点击暂停的时候会发送一系列窗口变动应答,将窗口降到5,并且不再应答ACK包。 当带点击恢复的时候只是重新发送ACK给服务器,同时将窗口重新设置为256。 以上可以确认它的“续传”只是利用TCP滑动窗口的特性,跟断不断网没关系,也不属于真正意义的断点续传功能(一般用range头部实现)。当然如果你中断网络超过了服务器的TCP连接超时时间那么就不能续传了,而且如果关闭浏览器即使网络非常正常也不能续传(也是因为TCP连接断了)。 上面有人说RANGE头部的,迅雷、火狐是利用这个,它们才是真正的断点续传。
zhujinqiang 2017-05-11
  • 打赏
  • 举报
回复
引用 2 楼 9527 的回复:
Range,是在 HTTP/1.1(http://www.w3.org/Protocols/rfc2616/rfc2616.html)里新增的一个 header field,也是现在众多号称多线程下载工具(如 FlashGet、迅雷等)实现多线程下载的核心所在。
原理就是文件分块吧
9527 2017-05-09
  • 打赏
  • 举报
回复
Range,是在 HTTP/1.1(http://www.w3.org/Protocols/rfc2616/rfc2616.html)里新增的一个 header field,也是现在众多号称多线程下载工具(如 FlashGet、迅雷等)实现多线程下载的核心所在。
自信男孩 2017-05-02
  • 打赏
  • 举报
回复
类似ftp协议吧,断点续传

4,387

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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