HTTP范围请求

​ 人们下载文件时断网重连之后,需要一种可恢复的机制。所谓恢复是指能从之前下载中断处恢复下载。
​ 要实现该功能需要指定下载的实体范围。像这样,指定范围发送的请求叫做范围请求(Range Request)。基于范围请求也可实现多线程分片下载。

​ 只有双端(客户端和服务器端)都支持HTTP/1.1才能使用范围请求。

1.范围请求的请求报文

​ 在HTTP/1.1的请求报文中,有一个首部字段Range来指定请求资源的byte范围。

范围请求报文示例:

GET /tip.jpg HTTP/1.1
Host: www.baidu.com
Range: bytes =5001-10000

想要继续下载后边的字节在请求头加Ranges:bytes=10000-即可。

​ byte范围指定形式如下:

  • 5001-10000:指定开始和结束的范围
  • 5001- :指定开始区间,表示从5001字节之后的所有内容
  • -3000:指定结束区间,表示从一开始到3000字节
  • -3000, 5001-:表示多重范围
2.范围请求的响应报文

​ 针对范围请求,通过响应头Accept-Ranges:bytes表示当前资源支持范围请求,响应会返回状态码为206 Partial Content的响应报文。针对请求报文中的Range字段,响应报文中也又响应的字段Content-Range来标记响应的实体内容范围。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值