FTP、HTTP断点续传和多线程的协议基础
FTP用的是REST和SIZE;HTTP用的是Range。
1、FTP实现断点续传的协议基础
REST(有的服务器可能不支持此命令)
Syntax: REST position
Sets the point at which a file transfer should start; useful for resuming interrupted transfers. For nonstructured files, this is simply a decimal number. This command must immediately precede a data transfer command (RETR or STOR .ly); i.e. it must come after any PORT or PASV command.
2、FTP实现多线程下载同一个大文件的协议基础
SIZE
Syntax: SIZE remote-filename
Returns the size of the remote file as a decimal number.
3、raw FTP commands
[url]http://www.nsftools.com/tips/RawFTP.htm#SIZE[/url]
[url]http://www.ietf.org/rfc/rfc959.txt[/url]
4、HTTP实现断点续传和多线程下载同一个大文件的协议基础
Range
HTTP retri. requests using conditional or unconditional GET methods MAY request .e or more sub-ranges of the entity, instead of the entire entity, using the Range request header, which applies to the entity returned as the result of the request:
Range = "Range" ":" ranges-specifier
A server MAY ignore the Range header. However, HTTP/1.1 origin servers and intermediate caches ought to support byte ranges when possible, since Range supports efficient recovery from partially failed transfers, and supports efficient partial retri. of large entities.
If the server supports the Range header and the specified range or ranges are appropriate for the entity:
- The presence of a Range header in an unconditional GET modifies
what is returned if the GET is otherwise successful. In other
words, the response carries a status code of 206 (Partial
Content) instead of 200 (OK).
- The presence of a Range header in a conditional GET (a request
using .e or both of If-Modified-Since and If-None-Match, or
.e or both of If-Unmodified-Since and If-Match) modifies what
is returned if the GET is otherwise successful and the
condition is true. It does not affect the 304 (Not Modified)
response returned if the conditional is false.
In some cases, it might be more appropriate to use the If-Range header (see section 14.27) in addition to the Range header.
If a proxy that supports ranges receives a Range request, forwards the request to an inbound server, and receives an entire entity in reply, it SHOULD .ly return the requested range to its client. It SHOULD store the entire received response in its cache if that is consistent with its cache allocation policies.
5、Hypertext Transfer Protocol -- HTTP/1.1
[url]http://www.w3.org/Protocols/rfc2616/rfc2616.html[/url]
转载于:https://blog.51cto.com/h2appy/138512
相关文章:
libev源码解析——定时器原理
本文将回答《libev源码解析——I/O模型》中抛出的两个问题。(转载请指明出于breaksoftware的csdn博客) 对于问题1:为什么backend_poll函数需要指定超时?我们让其一直等待到有事件发生不是更好么? 答案是“必须要指定超…
AI颠覆经济世界作用被夸大?影响远比媒体头条报道更加复杂
来源 | The Gradient译者 | 刘畅编辑 | 夕颜出品 | AI科技大本营(ID:rgznai100) 【导读】每天我们都听到有人声称人工智能将改变经济体系,造成大量的失业和垄断。但是,经济学家是如何看待的呢?在第三届AI经…

ArcGIS制图之Sub Points点抽稀
简介 Sub Points工具是 Esri 中国自主开发的一个插件,该工具优先考虑点在空间分布上的均匀合理性,并结合点数据中包含的 "优先级" 属性进行筛选。通过获取每个点在一定范围内拥有的相邻点的数目信息,得到地图中点密度的分布状况。抽…
libev源码解析——定时器监视器和组织形式
我们先看下定时器监视器的数据结构。(转载请指明出于breaksoftware的csdn博客) /* invoked after a specific time, repeatable (based on monotonic clock) */ /* revent EV_TIMEOUT */ typedef struct ev_timer {EV_WATCHER_TIME (ev_timer)ev_tstamp…
谁说AI无用?疫情下,AI已经代替人类做了很多...
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100)经历过无比漫长的十多天,疫情至今还没有任何退散的迹象,形势越来越严峻。百度实时大数据报告显示,截至2020年2月4日9时,新型冠状病毒累计报告确诊病例20471例…

关于CSS样式浏览器兼容问题的一些注意事项
CSS技巧1.div的垂直居中问题 vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行 2. margin加倍的问题 设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。解决…

Ember.js 入门指南——查询记录
2019独角兽企业重金招聘Python工程师标准>>> store提供了统一的获取数据的接口。包括创建新记录、修改记录、删除记录等,更多有关Store API请看这个网址的介绍:http://devdocs.io/ember/data/classes/ds.store。 为了演示这些方法的使用我们结…

C# 视频监控系列(9):服务器端——数据捕获(抓图 + 录像)
前言 录像功能是监控系统中最重要的功能之一,除了本文的功能实现外,还需要你自己考虑合适的存储策略:存储大小、时间段、存储盘符等。 注意 本系列文章限于学习交流,注重过程,由于涉及公司,所以不提供源代码…
疫情当下,你是在家里躺着刷抖音?还是在做这些?
2020年本来可以是很开心的一年没想到一开头就给了我们一个重重的一击疫情的出现让我们非常的恐慌新型病毒肺炎让我们无处可躲原来热闹的新年因为疫情让我们逼不得已只能待在家里走亲访友更是不可能的就连原来约好的相亲也泡汤了因为封城、封村、封小区、封路了而这些也只是为了…
代码打补丁的利器——diff和patch
一般来说,如果我们在研发过程中需要对代码进行修改,是不需要通过打补丁的方式的,因为我们可以直接改动文件即可。但是如果针对一款要上线的产品,我们总不能在研发的电脑上编译通过后直接发布到线上的。(转载请指明出于…

React Namespaced Components
2019独角兽企业重金招聘Python工程师标准>>> var MyForm React.createClass({...}); var MyForm.Row React.createClass({...}); var MyForm.Label React.createClass({...}); var MyForm.Input React.createClass({...}); This feature is available in v0.11 …
Linux下HOOK动态链接库中API的方法
2012年,我写了一篇介绍Windows系统下Ring3层API的hook方案——《一种注册表沙箱的思路、实现——Hook Nt函数》,其在底层使用了微软的Detours库。5年后,我又遇到这么一个问题,但是系统变成了Linux。我最开始的想法是找一个Linux下…

NAT的配置与相关概念的理解
试验背景:随着接入因特网的计算机数量不断猛增,IPv4版本地址资源也就愈加显得捉襟见肘。好多企业申请的IP地址都是经过子网不断划分得到的。A类,B类地址基本已用完,而一般的用户根本就申请不到整段的公网C类地址。如果,…
AAAI 2020论文解读:商汤科技发布新视频语义分割和光流联合学习算法
来源 | Every Frame Counts: Joint Learning of Video Segmentation and Optical Flow编辑 | Carol出品 | AI科技大本营(ID:rgznai100) 商汤科技研究团队发表论文《Every Frame Counts: Joint Learning of VideoSegmentation and Optical Flo…

互联网+和创业潮,互联网+前提条件是什么?互联网+做什么?
在大众创业,万众创新的大浪下,凭着对新技术的敏感和青春激情,创业新军不断涌现.... 互联网创业浪潮, 如雨后春笋......,互联网渗透每个人的心中。创业不是赶时髦,而是一条非常孤独,艰难的路。实施“互联网+…

C++拾趣——C++11的语法糖auto
C是一种强类型的语言,比如变量a,如果声明它是整型,则之后只能将它作为整型来用。这和其他弱类型的语言有很大的区别,比如python中,我们可以让a在第一行是个整型,第三行是一个字符串。(转载请指明…
“数学不行,啥都干不好!”骨灰级程序员:这比努力重要1000倍
之前有很多程序员读者向我们抱怨:1)做算法优化时,只能现搬书里的算法,遇到不一样的问题,就不会了。2)面试一旦涉及到算法和数据结构,如果数学不行,面试基本就凉凉了。3)一…

跳槽 你准备好了吗
“人往高处走”,这固然没有错。但是,说来轻巧的一句话,它却包含了为什么“走”、什么是“高”、怎么“走”、什么时候“走”,以及“走”了以后怎么办等一系列问题。跳槽是一门学问,也是一种策略。“人往高处走”&#…

C++:常类型Const
常类型:使用类型修饰符const说明的类型,常类型的变量或对象成员的值在程序运行期间是不可改变的。 3.10.1 常引用 如果在说明引用时用const修饰,则被说明的引用为常引用。如果用常引用做形参,便不会产生对实参 的不希望的更改。常…

JQuery制作的toolTip,针对图片预览效果
昨天做了一个文字版的toolTip,后来想想现在大家都爱看图,文字未免有点单调了点,那我们就来个图片式的预览。代码比较简单,我就不多说了。 欢迎来到 买礼网 选购礼品! 畅游鄂西山水风光尽在 恩施旅游资讯网首先看看调用…
29篇计算机视觉领域论文,篇篇惊艳!内附链接!
作者 | 微软亚洲研究院本文经授权转载自微软研究院AI头条(ID:MSRAsia)1. Deep High-Resolution Representation Learning for Human Pose Estimation论文链接:https://arxiv.org/pdf/1902.09212.pdf该论文在提出了一个新的网络Hig…
绑定CPU逻辑核心的利器——taskset
在工作中,我们可能遇到这样的需求:如何评估程序在一核和多核下的工作效率差距?最简单的想法是找一台只有一个CPU逻辑核的机器和一台有多个逻辑核的机器。(转载请指明出于breaksoftware的csdn博客)但是这种方式有明显的…

IDE set arguments
2019独角兽企业重金招聘Python工程师标准>>> code::blocks -> Project -->set programs arguments qtcreater -> Projects --> Build&Run --> Run --> Arguments xcode -> super < -->build-->arguments 转载于:https://my.osch…
2020年AI如何走?Jeff Dean和其他四位“大神”已做预测!
作者 | Khari Johnson译者 | 王艳妮 责编 | 胡巍巍出品 | AI科技大本营(ID:rgznai100)人工智能已经不再是随时准备改变世界的状态,而是已经在改变世界。在迈入2020年这新的一年、以及新的20年代之际,笔者请到了AI方面最…
zookeeper快速入门——简介
在几十年前,一个独立的计算机上往往部署着一套完整的应用系统。当时因为网络稳定性及速度的限制,将相关联的服务部署在一台机器上,让它们使用系统机制通信——比如管道,文件等,往往是最稳定和最高效的。然而随着网络技…

为TextMate扩展全屏功能
今天看代码,感觉TextMate那个窗口太小了点,越看越不爽,就想把它弄成全屏的。于是搜索啊搜索啊搜索,终于让我找到一款很yd的小软件,叫megazoomer, 下载地址是:[url]http://ianhenderson.org/mega…

hdu1406
一道很水很水的题!!!!!!!!!!#include<iostream> using namespace std; int main(){int num1,num2,i,k,j,sum,n;while(cin>>n){ while(n--){cin&g…
zookeeper快速入门——部署
zookeeper有两种运行模式:独立模式和仲裁模式。独立模式就是只运行一个Zookeeper Server,这自然没法解决服务崩溃导致系统不可用的问题。仲裁模式就是以集群的方式运行Zookeeper Server,这样在Leader不可用时,集群内部会发起选举&…
2020,人工智能和深度学习未来的五大趋势
来源 | forbes编译 | Shawn编辑 | Carol出品 | AI科技大本营(ID:rgznai100)虽然近年来人工智能经常成为热门议题,但它还远未实现真正的成就。人工智能技术发展的主要障碍在于投资成本,投资成本影响短期内的回报。而当时…

电脑常见故障 1
死机恐怕是所有电脑故障里面最常见的一种了,但是死机的原因是多种多样的。 如果从硬件入手,先是看看机箱里的温度是否很高,要检查CPU的风扇是否正常运转,并要注意电脑的散热问题;其次可检查内存,检查完内存…