服务器是否支持断点续传

服务器是否支持断点续传,第1张

1.HTTPbegintryIdHTTP.Request.ContentRangeStart

:=

2

//设定断点续传的开始位置

IdHTTP.Request.ContentRangeEnd

:=

3

//设置传输的结束位置,为了以最快的速度返回结果,所以设定请求的总长度为1

if

IdHTTP.Response.ResponseCode

=

206

then

//根据返回代码判断是否支持断点续传

ShowMessage('该FTP站点支持断点续传。')elseShowMessage('该FTP站点不支持断点续传。')exceptendendvariValue:

Integerbeginwith

IdFTP

dotryif

Connected

then

Disconnect

Username

:=

'anonymous'

//这是FTP的用户名

Password

:=

'test@ftp.com'

//只是FTP的密码

Host

:=

'ftp.globalscape.com'

Port

:=

21ConnectexceptexitendtryiValue

:=

IdFTP.SendCmd('REST

1')

//发送指令判断是否支持断点续传

ShowMessage('该FTP站点支持断点续传。')elseShowMessage('该FTP站点不支持断点续传。')exceptendend

其实断点续传的原理很简单,就是在Http的请求上和一般的下载有所不同而已。

打个比方,浏览器请求服务器上的一个文时,所发出的请求如下: 假设服务器域名为w ,文件名为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 (compatibleMSIE 5.01Windows 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了。

知道了以上原理,就可以进行断点续传的编程了。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/227707.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-08
下一篇2023-04-08

发表评论

登录后才能评论

评论列表(0条)

    保存