断点续传的原理——http1.1协议

参考文章——断点续传原理解析

断点续传的原理

Http断点续传的原理:
是在http的请求上多定义了断点续传相关的HTTP头 RangeContent-Range字段(Range和Content-Range是HTTP/1.1中新增的HTTP头字段。它用于从服务器端中获取一个大文件的一部分内容,这极大地提高了HTTP的运行效率,很适合下载软件进行多线程下载和断点续传。)

HTTP1.1协议开始支持获取文件的部分内容,这为并行下载以及断点续传提供了技术支持。它通过在Header里两个参数实现的,客户端请求时对应是Range,服务器端响应时对应的是Content-Range。

但是在实际场景中,可能会出现的情况,在终端发起续传请求时,URL对应的文件内容在服务端已经发生变化,此时续传的数据肯定是错误的。如何解决?此时就需要有一个标识文件唯一性的方法。在RFC2616中也有相应的定义,比如实现Last-Modified来标识文件的最后修改时间,这样即可判断出续传文件是否发生过改动。同时RFC2616中还定义有一个ETag的头,可以使用ETag头来放置文件的唯一标识,比如文件的MD5值。

终端在发起续传请求时,应该在HTTP头中申明if-Match或者If-Modified-Since字段,帮助服务端判别文件变化。

另外RFC2616中同时定义有一个if-range头,终端如果在续传使用if-Range。if-Range中的内容可以为最初收到的ETag头或者是Last-Modfied中的最后修改时候。服务端在收到续传请求时,通过If-Range中的内容进行校验,校验一致时返回206的续传回应,不一致时服务端则返回200回应,回应的内容为新的文件的全部数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值