- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本资料由- 大学生创业| 创业| 创业网/提供资料
在线代理| 网页代理| 代理网页| 减肥药排行榜| 淘宝最好的减肥药| 什么减肥药效果最好| 减肥瘦身药|
用Java实现HTTP断点续传功能.
2007年06月25日 星期一 16:13
(一)断点续传的原理
其实断点续传的原理很简单,就是在Http的请求上和一般的下载有所不同而已。
打个比方,浏览器请求服务器上的一个文时,所发出的请求如下:
假设服务器域名为,文件名为down.zip。
GET /down.zip HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-
excel, application/msword, application/vnd.ms-powerpoint, */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Connection: Keep-Alive
服务器收到请求后,按要求寻找请求的文件,提取文件的信息,然后返回给浏览器,返回信息如下
200
Content-Length=106786028
Accept-Ranges=bytes
Date=Mon, 30 Apr 2001 12:56:11 GMT
ETag=W/02ca57e173c11:95b
Content-Type=application/octet-stream
Server=Microsoft-IIS/5.0
Last-Modified=Mon, 30 Apr 2001 12:56:11 GMT
所谓断点续传,也就是要从文件已经下载的地方开始继续下载。所以在客户端浏览器传给
Web服务器的时候要多加一条信息--从哪里开始(客户端提供一个文件偏移)。
下面是用自己编的一个浏览器来传递请求信息给Web服务器,要求从2000070字节开始。
GET /down.zip HTTP/1.0
User-Agent: NetFox
RANGE: bytes=2000070-
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
仔细看一下就会发现多了一行RANGE: bytes=2000070-
这一行的意思就是告诉服务器down.zip这个文件从2000070字节开始传,前面的字节不用传了。
服务器收到这个请求以后,返回的信息如下:
206
Content-Length=106786028
Content-Range=bytes 2000070-106786027/106786028
Date=Mon, 30 Apr 2001 12:55:20 GMT
ETag=W/02ca57e173c11:95b
Content-Type=application/octet-stream
Server=Microsoft-IIS/5.0
Last-Modified=Mon, 30 Apr 2001 12:55:20 GMT
和前面服务器返回的信息比较一下,就会发现增加了一行:
Content-Range=bytes 2000070-106786027/106786028
返回的代码也改为206了,而不再是200了。
………………………………………………………………………………………………
206 Partial Content
服务器已经成功处理了部分 GET 请求。类似于 FlashGet 或者迅雷这类的 HTTP下载工具都是使用此类响应实现断点续传或者将一个大文档分解为多个下载段同时下载。
该请求必须包含 Range 头信息来指示客户端希望得到的内容范围,并且可能包含 If-Range 来作为请求条件。
响应必须包含如下的头部域:
Content-Range 用以指示本次响应中返回的内容的范围;如果是 Content-Type 为 multipart/byteranges 的多段下载,则每一 multipart 段中都应包含 Content-Range 域用以指示本段的内容范围。假如响应中包含 Content-Length,那么它的数值必须匹配它返回的内容范围的真实字节数。
Date
ETag 和/或 Content-Location,假如同样的请求本应该返回200响应。
Expires, Cache-Control,和/或 Vary,假如其值可能与之前相同变量的其他响应对应的值不同的话。
假
您可能关注的文档
- 生活与哲学--学案.doc
- 生活与哲学1--5课过关试题.doc
- 生活与哲学--学案A.doc
- 生活与哲学复习.doc
- 生活与哲学教材变化.doc
- 生活与哲学第一单元复习.doc
- 生活与哲学第一单元测试题(整理)1.doc
- 生活与哲学第一单元测试题(2).doc
- 生活与哲学第一单元生活的智慧与时代的精神基础练习.doc
- 生活与哲学第一单元练习题.doc
- 内蒙古自治区根河市2024届中考化学考前最后一卷含解析.doc
- 2024届山西省阳泉市平定县中考冲刺卷化学试题含解析.doc
- 山西省运城市夏县达标名校2024年中考联考化学试卷含解析.doc
- 广东省深圳罗湖区四校联考2024届中考试题猜想化学试卷含解析.doc
- 2024届湖北省宜昌市天问校中考化学五模试卷含解析.doc
- 2024届山东省泰安宁阳县联考中考冲刺卷化学试题含解析.doc
- 云南省富宁县2024年中考化学押题试卷含解析.doc
- 2024届湖北省枣阳市重点名校中考化学全真模拟试卷含解析.doc
- 甘肃省兰州市联片办2024届中考化学最后冲刺卷含解析.doc
- 天津市滨海新区第四共同体2024届中考适应性考试化学试题含解析.doc
文档评论(0)