转自:http://blog.csdn.net/sendy888/article/details/1719105

断点续传是我们现在经常接触的概念,那么HTTP协议是如何支持断点续传的呢。我们先从一个例子来看看。

下面是一个断点续传的例子:(使用Net Vampire得到)

I 01-7-12 19:19:23 ------------------------- Attempt 1 -------------------------
P 01-7-12 19:19:24 Connecting to 127.0.0.3 ...
P 01-7-12 19:19:24 Connected to 127.0.0.3 [127.0.0.3]
S 01-7-12 19:19:24 GET /VS0515AI.EXE HTTP/1.1
S 01-7-12 19:19:24 Connection: close
S 01-7-12 19:19:24 Host: 127.0.0.3
S 01-7-12 19:19:24 Accept: */*
S 01-7-12 19:19:24 Pragma: no-cache
S 01-7-12 19:19:24 Cache-Control: no-cache
S 01-7-12 19:19:24 Referer: http://127.0.0.3/
S 01-7-12 19:19:24 User-Agent: Mozilla/4.04 [en] (Win95; I ;Nav)
S 01-7-12 19:19:24
R 01-7-12 19:19:24 HTTP/1.1 200 OK
R 01-7-12 19:19:24 Server: Zero Http Server/1.0
R 01-7-12 19:19:24 Date: Thu, 12 Jul 2001 11:19:24 GMT
R 01-7-12 19:19:24 Cache-Control: no-cache
R 01-7-12 19:19:24 Last-Modified: Tue, 30 Jan 2001 13:11:30 GMT
R 01-7-12 19:19:24 Content-Type: application/octet-stream
R 01-7-12 19:19:24 Content-Length: 15143086
R 01-7-12 19:19:24 Connection: close
R 01-7-12 19:19:24
P 01-7-12 19:19:25 Data transfer started
I 01-7-12 19:19:32 Job Stopped by user
I 01-7-12 19:19:33 Received 5 275 648 bytes in 0:00:07 (691 435 bytes/s)

I 01-7-12 19:19:40 ------------------------- Attempt 2 -------------------------
P 01-7-12 19:19:40 Connecting to 127.0.0.3 ...
P 01-7-12 19:19:40 Connected to 127.0.0.3 [127.0.0.3]
S 01-7-12 19:19:40 GET /VS0515AI.EXE HTTP/1.1
S 01-7-12 19:19:40 Connection: close
S 01-7-12 19:19:40 Host: 127.0.0.3
S 01-7-12 19:19:40 Accept: */*
S 01-7-12 19:19:40 Pragma: no-cache
S 01-7-12 19:19:40 Cache-Control: no-cache
S 01-7-12 19:19:40 Referer: Partial Content
R 01-7-12 19:19:40 Server: Zero Http Server/1.0
R 01-7-12 19:19:40 Date: Thu, 12 Jul 2001 11:19:40 GMT
R 01-7-12 19:19:40 Cache-Control: no-cache
R 01-7-12 19:19:40 Last-Modified: Tue, 30 Jan 2001 13:11:30 GMT
R 01-7-12 19:19:40 Content-Type: application/octet-stream
R 01-7-12 19:19:40 Content-Range: bytes 5275648-15143085/15143086
R 01-7-12 19:19:40 Content-Length: 9867438
R 01-7-12 19:19:40 Connection: close
R 01-7-12 19:19:40
P 01-7-12 19:19:40 Data transfer started
I 01-7-12 19:19:41 Job Stopped by user
I 01-7-12 19:19:41 Received 1 124 756 bytes in 0:00:01 (969 617 bytes/s)

第一次是普通的传输;第二次由于没有传完全,就发出了Range这个头部,从5275648字节开始传输(默认是按字节算),回应使用206状态值,表示现在开始部分传输,回复Content-Length头部,表示传输的部分,用字节记,然后就与普通传输没有区别了。

HTTP断点续传的基本原理的更多相关文章

  1. Node + js实现大文件分片上传基本原理及实践(一)

    _ 阅读目录 一:什么是分片上传? 二:理解Blob对象中的slice方法对文件进行分割及其他知识点 三. 使用 spark-md5 生成 md5文件 四. 使用koa+js实现大文件分片上传实践 回 ...

  2. Android 断点续传

    断点续传指的是在下载或上传时,将下载或上传任务(一个文件或一个压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传或下载,如果碰到网络故障,可以从已经上传或下载的部分开始继续上传下载未完成的部 ...

  3. android 多线程断点续传下载

    今天跟大家一起分享下Android开发中比较难的一个环节,可能很多人看到这个标题就会感觉头很大,的确如果没有良好的编码能力和逻辑思维,这块是很难搞明白的,前面2次总结中已经为大家分享过有关技术的一些基 ...

  4. iOS大文件分片上传和断点续传

    总结一下大文件分片上传和断点续传的问题.因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况.http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较大时,http协议自动会将文件 ...

  5. Android学习记录(5)—在java中学习多线程下载之断点续传②

    在上一节中我们学习了在java中学习多线程下载的基本原理和基本用法,我们并没有讲多线程的断点续传,那么这一节我们就接着上一节来讲断点续传,断点续传的重要性不言而喻,可以不用重复下载,也可以节省时间,实 ...

  6. Android学习记录(4)—在java中学习多线程下载的基本原理和基本用法①

    多线程下载在我们生活中非常常见,比如迅雷就是我们常用的多线程的下载工具,当然还有断点续传,断点续传我们在下一节来讲,android手机端下载文件时也可以用多线程下载,我们这里是在java中写一个测试, ...

  7. web大文件上传断点续传源码

    总结一下大文件分片上传和断点续传的问题.因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况.http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较大时,http协议自动会将文件 ...

  8. php如何实现大文件断点续传-php文件

    总结一下大文件分片上传和断点续传的问题.因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况.http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较大时,http协议自动会将文件 ...

  9. HTML5实现文件断点续传

    HTML5的FILE api,有一个slice方法,可以将BLOB对象进行分割.前端通过FileList对象获取到相应的文件,按照指定的分割方式将大文件分段,然后一段一段地传给后端,后端再按顺序一段段 ...

随机推荐

  1. php session memcache

    ini_set("session.save_handler", "memcache"); ini_set("session.save_path&quo ...

  2. HttpUtility.HtmlEncode 方法

    將字串轉換為 HTML 編碼的字串. 例如: publicstringWelcome(string name,int numTimes =1){     returnHttpUtility.HtmlE ...

  3. [Mongo] How to Install Mongo on Debian(不要安装)

    Install MongoDB on Debian¶ This tutorial outlines the steps to install MongoDB on Debian systems. Th ...

  4. NOIP201405生活大爆炸版石头剪刀布

    NOIP201405生活大爆炸版石头剪刀布 试题描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一 样,则不分胜负.在<生活大爆炸>第二季第 8 集中出现了 ...

  5. 关于UIWindow(转)

    (原文出自:http://www.cnblogs.com/wendingding/p/3770052.html,特别感谢) 一:[[UIScreen mainScreen] bounds] 和[UIS ...

  6. java总结第四次//常用类

    六.常用类 主要内容:Object类.String类.Date类.封装类 (一)Object类 1.Object类是所有Java类的根父类 2.如果在类的声明中未使用extends关键字指明其父类,则 ...

  7. Microsoft JET Database Engine (0x80004005)

    解决方法:打开我的电脑,菜单栏工具选项下去掉打钩查看卡里使用简单文件共享(推荐)这项. 找到windows/temp文件夹,对temp右键属性,安全选项里添加everyone这个用户,选择完全控制权限 ...

  8. javaWeb request乱码处理

    //解决get方式提交的乱码        String name = request.getParameter("name");        name=new String(u ...

  9. 转:redis常用命令

    一 Redis介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发 ...

  10. IE11下,IIS7.5不自动生成__doPostBack事件

    MS在 2013/10/8 已出补丁 http://www.microsoft.com/zh-cn/download/details.aspx?id=39257 https://support.mic ...