请求协议是由客户机 (浏览器)向服务器(WEB SERVER)提交请求时发送报文的协议。回复协议是由服务器(web server),向客户机(浏览器)回复报文时的协议。请求和回复协议都由头和体组成。头和体之间以一行空行为分隔。
以下是一个请求报文与相应的回复报文的例子:
复制代码 代码如下:
GET /image/index_r4_c1.jpg HTTP/1.1
Accept: */*
Referer: http://192.168.3.120:8080
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)
Host: 192.168.3.120:8080
Connection: Keep-Alive
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Tue, 24 Jun 2003 05:39:40 GMT
Content-Type: image/jpeg
Accept-Ranges: bytes
Last-Modified: Thu, 23 May 2002 03:05:40 GMT
ETag: "bec48eb862c21:934"
Content-Length: 2827
….
顾名思义,断点续传就是在上一次下载时断开的位置开始继续下载。在HTTP协议中,可以在请求报文头中加入Range段,来表示客户机希望从何处继续下载。
比如说从第1024字节开始下载,请求报文如下:
复制代码 代码如下:
GET /image/index_r4_c1.jpg HTTP/1.1
Accept: */*
Referer: http://192.168.3.120:8080
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)
Host: 192.168.3.120:8080
Range:bytes=1024-
Connection: Keep-Alive
相应的响应报文为
复制代码 代码如下:
HTTP/1.1 206 Partial Content
Server: Microsoft-IIS/5.0
Date: Tue, 24 Jun 2003 05:39:40 GMT
Content-Type: image/jpeg
Accept-Ranges: bytes
Last-Modified: Thu, 23 May 2002 03:05:40 GMT
ETag: "bec48eb862c21:934"
Content-Length: 1803
Content-Range: bytes 1024-1803/2827
通过两段不同的报文可以看到,在断点续传时,我们只要能给客户端相应相应的报文,使客户端能正确响应,并且传送续传点后的部分文件即可实现断点续传。
1. 区分断点续传报文。
由于断点续传报文中含有Range字段,因此,只要通过Request.Headers["Range"]是否为null即可。
2. 发送正确的续传响应报文
两次响应报文不同的部分在报文中已经用红色部分标识出来,只需修改红色部分报文头,便能发送正确的续传报文。
3. 传送正确的文件部分
续传的时候只需要传送续传点之后的文件即可,首先通过请求报文中的Range字段获取文件的开始位置,传送文件的时候只需要传送该位置之后的部分即可。
下面的代码示例显示了一个可以支持断点续传的 ASP.NET 页
复制代码 代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
string file = MapPath("ff.zip");
FileInfo fi=new FileInfo (file);
long startPos = 0;
//所传输的文件长度
long fileTranLen = fi.Length;
//断点续传请求
if (Request.Headers["Range"] != null)
{
Response.StatusCode = 206;
startPos = long.Parse(Request.Headers["Range"].Replace("bytes=", "").Split('-')[0]);
fileTranLen -= startPos;
//Response.AddHeader("Accept-Ranges", "bytes");
//Content-Range: bytes [文件块的开始字节]-[传输文件的总大小]/[文件的总大小]
Response.AddHeader("Content-Range", string.Format("bytes {0}-{1}/{2}",startPos,fileTranLen,fi.Length));
}
Response.AddHeader("Content-Length", fileTranLen.ToString());
//基本的文件下载报文头
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + fi.Name);
//简单的流拷贝
System.IO.Stream fileStream = System.IO.File.OpenRead(file);
fileStream.Position = startPos;
byte[] buffer = new Byte[1024];
int count;
while ((count = fileStream.Read(buffer, 0, buffer.Length)) > 0)
{
Response.OutputStream.Write(buffer, 0, count);
}
fileStream.Close();
Response.End();
}
相关推荐:
SEO词的魔力:如何通过关键词优化打破流量瓶颈,免费网站建设高端
SEO出超:如何通过精准优化实现网站流量大爆发,营销推广方式联系f火15星
ChatGPT全球宕机:人工智能的崩塌与未来的挑战,中国ai和美国ai教父
AI网页设计生成-智能化创造无限可能,ai机甲风背景音乐
《命运交错的轨迹:小说背后的无尽魅力》,seo优化huifachina
chatai写作免费一键生成,轻松解决写作难题!,陈逗逗ai换脸在线看
为什么seo推广那么多,seo推广难吗 ,东莞ai听译平台
SEO广告:如何借助SEO提升品牌曝光与销售业绩?,网站推广怎么选择
用AI批量下载工具,高效管理你的文件和资源
AI撰写大数据解决方案:开启智能数据时代的新篇章,ai头号公敌
SEO排位:如何通过精准策略提升网站排名,获得流量与转化,林海网络推广营销
ChatGPT3.5需要登录使用吗?AI使用的真相!,电脑版写作ai推荐怎么关闭
seo简介主要写什么,seo主要内容 ,AI弧线这
ChatGPT为什么访问不了了?了解背后的原因与解决方法,AI怎么拖入路径
SEO查看-如何通过精确分析提升网站流量与排名,东丽网站建设价格
SEO这样做,轻松引爆流量,助力企业成长,无极标准网站优化好处
用AI优化文章,轻松提升内容质量与创作效率
SEO动态:2025年SEO趋势与优化技巧解析,十堰外贸网站推广费用
从零到一:网站历史的演变与未来趋势,肇庆市国外网站建设平台
亚马逊seo信息是什么,亚马逊seo关键词优化软件 ,光谷ai
ChatGPT40不收费版本:科技革新,智能助手助力生活与工作,ai医疗武器有哪些
SEO查:如何用精准的SEO诊断助力网站流量爆发,美团关键词排名怎么补
SEO元素-提升网站排名的核心要素,推广分成网站有哪些
如何用AI写公众号文章?让创作更高效、更轻松
ChatGPT显示503:如何应对AI服务不可用的困境?,ai宝贝宝贝
“扩写AI”-引领写作革命,开启智能创作新时代,dede seo 标题如何填写
ChatGPTDNS出问题?如何快速解决并保障网络畅通,墨镜ai照片
SEO自从上线后的演变与未来发展趋势,拼多多增加关键词排名
ChatGPTCanvex打不开?详细分析及解决方法助你顺利使用,ai2.5d网格线去除
主流seo是什么,seo是什么推广网站 ,AI心理师
seo网络推广要做什么,seo 网络推广 ,ai少女喝药
ChatGPT198元永久会员,开启智慧之门,体验AI的极致服务!,老孙教ai
优化原理:提升效率、创新突破的核心法则,印刷包装推广有哪里网站
ChatGPT页面怎么拖不动?解决问题的终极指南,日韩AI换脸在线观看
为什么seo这么麻烦,seo是什么意思 为什么要做seo ,dota1ai地图命令选ai
为什么seo对企业重要,seo对企业进行网络营销的价值 ,ai李沁换脸鲍鱼
seo能解决什么问题,seo会遇到哪些问题 ,挚爱花嫁ai
“新热度”:引领潮流的力量,如何趋势的脉搏,浙江通用网站建设特点
ChapGPT免费爬墙,轻松访问全球互联网资源!,蜜桃ai插画
SEO优化引导新官网,助力企业迈向成功之路,宋轶ai换
文章自动生成AI:助力写作新时代,让创作更高效
ChatGPT宕机两小时,OpenAI紧急修复,用户期待AI恢复正常服务,oppo小布ai
seo运营经理是什么,seo和运营的区别 ,皖妍ai宁慕晴o
ChatGPT:基于Transformer技术的语言模型,开创人工智能未来,AI独战OK
SEO公司核心业务是什么?揭秘提升网站排名的奥秘,写作助手ai一键生成作文在线
SEO代做:让你的企业轻松登顶搜索引擎,快速提升曝光率,seo 提高注册量
SEO外,如何提升网站整体营销效果?,文轩网络营销推广方案
seo需要什么器械,seo需要什么器械才能做 ,长续航ai纯电汽车
重生成AI:突破科技前沿,开启智能未来
seo需要懂什么源码,seo需要懂什么源码技术 ,ai 纤维