童话说说技术创业美文职业
投稿投诉
职业母婴
职场个人
历史治疗
笔记技能
美文纠纷
幽默家庭
范文作文
乐趣解密
创业案例
社会工作
新闻家居
心理安全
技术八卦
仲裁思考
生活时事
运势奇闻
说说企业
魅力社交
安好健康
传统笑话
童话初中
男女饮食
周易阅读
爱好两性

文件断点续传功能的原理

9月13日 不星湖投稿
  现在的文件上传下载功能,都是支持断点续传的。那么这看似很简单的小功能,背后实现的原理是怎样的呢?
  断点续传支持从文件上次中断的地方开始传送数据,而并非是从文件开头传送。
  断点续传的原理如下:
  由于浏览器与服务端的通讯是基于HTTP协议,所以断点续传功能的原理就是靠HTTP请求来实现。
  断点续传功能最核心的原理就是利用HTTP请求中的两个字段:客户端请求头中的Range,和服务端响应头的ContentRange。
  我们举一个例子,模拟一下整个过程。
  1、浏览器请求服务器上的一个文件时,所发出的请求如下(假设文件名为file。zip,服务器域名为W):
  GETfile。zipHTTP1。1浏览器用GET方式获取file。zip文件,HTTP协议版本1。1
  Accept:imagegif,imagexxbitmap,imagejpeg,imagepjpeg,applicationvnd。ms
  excel,applicationmsword,applicationvnd。可接受的响应内容(文件)类型
  AcceptLanguage:可接受的响应内容语言(简体中文)
  AcceptEncoding:gzip,可接受的响应内容的编码方式
  UserAgent:Mozilla4。0(MSIE5。01;WindowsNT5。0)浏览器的身份标识(浏览器类型)
  Connection:KeepA浏览器想要优先使用的连接类型
  2、服务器收到请求后,寻找请求的文件,提取文件的信息,然后返回给浏览器,返回信息如下:
  200响应状态码(200标识成功)
  ContentLength123456789响应消息的长度(单位是字节)
  AcceptR服务器所支持的内容范围(字节)
  DateMon,30Apr200112:56:11GMT此消息被发送时的日期和时间
  ETagW“02ca57e173c11:95b”资源的标识符
  ContentT当前内容的类型
  ServerMicrosoftIIS5。0服务器名称
  LastModifiedMon,30Apr200112:56:11GMT所请求的对象的最后修改日期
  3、此时文件已经开始下载了,如果现在停止了下载,那么再次下载文件时就要从已经下载的地方继续下载。现在比如按下了继续下载,那么此时浏览器的请求内容如下:
  GETfile。zipHTTP1。1
  Accept:imagegif,imagexxbitmap,imagejpeg,imagepjpeg,applicationvnd。ms
  excel,applicationmsword,applicationvnd。mspowerpoint
  Range:bytes200000告诉服务器file。zip这个文件从200000字节开始传,前面的字节不用传了
  AcceptLanguage:zhcn
  AcceptEncoding:gzip,deflate
  UserAgent:Mozilla4。0(MSIE5。01;WindowsNT5。0)
  Connection:KeepAlive
  4、此时服务器收到这个请求后,返回的信息如下:
  206表示服务器已经成功处理了部分GET请求
  ContentLength123256789
  ContentRangebytes200000123456789表示已经返回了200000B的文件数据,同时也返回了文件的全部大小
  DateMon,30Apr200112:55:20GMT
  ETagW“02ca57e173c11:95b”
  ContentTypeapplicationoctetstream
  ServerMicrosoftIIS5。0
  LastModifiedMon,30Apr200112:55:20GMT
  以上就是断点续传的原理,在不同客户端实现时只需要找到不同的开发语言实现提交Range的方法即可。
  作为产品功能的设计者,每一个看似简单的小功能,其背后的实现原理都值得我们去研究,正所谓“知其然,更要知其所以然”。
投诉 评论 转载

看似简单编辑器,其实并不简单编辑器是内容类社区产品必不可少的组件。对于编辑器的选型,很多人认为直接找个开源的就行了。其实事情并没有那么简单。我们的产品是一个面向研发技术人员的内容类社区。内容类社区有……关于社区产品的一些总结负责社区业务线近一年,期间研究了百度贴吧、兴趣部落、豆瓣小组、知乎、第一弹、SAME、最右等一系列的(兴趣)社区产品。近日,将要离职,所以打算把自己关于社区产品的一些工作经验和……交互设计师如何将需求落地?作为一名新晋的交互设计师,面对大大小小的需求时,该如何处理?(PS:不处理掉这些需求,老板就会处理掉你)而将得到的需求变成你设计稿中的结构框架是每位交互设计师必备的能力之一。此……QQ支付品牌重塑设计:喜欢就付QQ支付品牌设计有何不同?一起通过文章来看看说起国内的支付类产品,它们在视觉系统上大都选择了较沉稳、不出挑的风格,大家普遍认为,这样的设计能让用户对产品有较高的信任度。……文件断点续传功能的原理现在的文件上传下载功能,都是支持断点续传的。那么这看似很简单的小功能,背后实现的原理是怎样的呢?断点续传支持从文件上次中断的地方开始传送数据,而并非是从文件开头传送。……高效触达:构建高效着陆页当前着陆页触达用户的方式,符合你的预期吗?无论产品规模大小或者热度高低,每一个网站都会着重考量着陆页的跳出率,这直接关系到用户的使用时长和使用深度。大多数企业花大量……优惠券设计:优惠券的发放与使用本文从优惠券设计的发放和使用两个模块展开,希望能够给大家带来一些收获。上一章节大致讲了创建优惠券涉及的范围,想要了解请点击《优惠券设计促销》。本章灰灰将说道说道优惠券设计……资讯分享页设计如何提升用户转化?分享页面并不是仅仅呈现方式与原生页面不同,在做设计的时候一定要有系统的思维。很多人认为在做新闻或资讯的分享页时,我们只需要做好内容,好的内容就能引发用户自主的传播。这本身……展望数据化设计:2018,设计驱动创新如何超越科技?本文主要说明了设计驱动创新含义、实现方法以及相关总结。设计驱动创新说明当我们想起创新时,大多数人的脑海中首先浮现的是技术。网络上铺天盖地的科技文章都在谈论着区块链、……关于搭建游戏平台的四个思考游戏平台最基本的价值是把游戏带给用户,因此所有的产品都可以利用流量红利搭建游戏平台。有时候跟同行聊天,他们会认为游戏公司产品经理跟其他互联网公司的产品经理职责是不同的,甚……人人都会违反的关键UX设计规则:产品设计及生命周期管理的关键什么是“米勒定律”呢?看看这篇文章,通过一些案例和练习真正体会下什么是“米勒定律”。每个人,特别是产品设计人员都需要遵守一个原则。然而我发现很多公司一复一日的违背这个会对……从HQTrivia出发,深度解析直播答题的火爆原因及局限Abhimanyu在DestructionofFun网站中发表了这篇文章,从各个方面深度解析了直播答题产品的鼻祖HQTrivia迅速走红背后的原因以及其产品目前的局限性。以下为……
让评论更有价值Android与iPhone界面布局对比BANNER中的字体结构分析凭什么跟你走信息架构:一个网站软件到底需要多少张页面我心中“用户体验”几大要素的优先级从Web到WAP移植的设计原则如何做得Banner通情达意App使用:简洁,还是个性化数据与理论结合,让交互设计更专业Google产品经理笔试题面试题中国式产品经理
出汗多了可以减肥吗于月仙刚去世16天,其弟就跟丈夫张学松争夺遗产,吃相太难看哪些微量元素与胎儿发育有关故人在其下,尘土相豗蹴。五年级班主任的下学期工作总结军工三傻暴跌,这周整体吸筹军工半仓,下周还跌吗?御泥坊面膜含荧光剂吗御泥坊睡眠面膜敷完要洗脸吗假如我有一支神笔【歌词】梦的火种歌手:万茜热闻聚热点网 只租不卖蔚来ET7EL7ET5三款车型登陆欧洲市场热文聚热点 男人是怎么样向老婆表达爱意的最新教师教学反思

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找作文动态热点娱乐育儿情感教程科技体育养生教案探索美文旅游财经日志励志范文论文时尚保健游戏护肤业界