HTTP学习笔记

本文深入解析HTTP/1.1中的Range和Content-Range字段,阐述它们如何支持客户端进行高效的多线程下载和断点续传。同时,文章还介绍了如何通过HTTP响应码206和416来处理范围请求,以及服务器如何返回特定的数据段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Range和Content-Range是 HTTP/1.1中新增的HTTP头字段,它用于从服务器中获取一个大文件的某一部分内容,很适合下载软件进行多线程下载和断点续传。

Range字段的作用是支持http协议的范围请求,而范围请求的用途多用于客户端多线程请求服务端某一资源,实现高效并发。

 在http请求头中,Range字段代表请求内容的起始位置,以字节计数,序号从零开始。

在http响应头中,Content-Range:bytes 0-1538/1539代表返回数据内容的起始位置,及整个需要请求的内容的长度。

对含“Range”字段的HTTP数据,其响应码并非通常的200等,而是206和416。

206的含义是“Partial Content”,即服务器发回的是请求的那一部分内容。

416的含义是“Range Not Satisfiable”,表明客户端请求的数据范围不合法。

 

 

HTTP 协议范围请求允许服务器只发送 HTTP 消息的一部分到客户端。范围请求在传送大的媒体文件,或者与文件下载的断点续传功能搭配使用时非常有用。

检测服务器端是否支持范围请求

假如在响应中存在 Accept-Ranges 首部(并且它的值不为 “none”),那么表示该服务器支持范围请求。例如,你可以使用 cURL 发送一个 HEAD 请求来进行检测。

 Content-Length :表示请求图片的完整大小

 Accept-Ran ges : bytes表示界定范围的单位是 bytes 

-H" 选项可以在请求中追加一个首部行

-i: Include protocol response headers in the output 在输出中包含协议响应头

多重范围

Range头部也支持一次请求文档的多个部分。请求范围用一个逗号分隔开。

curl http://www.example.com -i -H "Range: bytes=0-50, 100-150"

服务器返回206 Partial Content状态码和Content-Type:multipart/byteranges; boundary=3d6b6a416f9b5头部,Content-Type:multipart/byteranges表示这个响应有多个byterange。每一部分byterange都有他自己的Centen-type头部和Content-Range,并且使用boundary参数对body进行划分。

HTTP/1.1 206 Partial Content
Content-Type: multipart/byteranges; boundary=3d6b6a416f9b5
Content-Length: 282

--3d6b6a416f9b5
Content-Type: text/html
Content-Range: bytes 0-50/1270

<!doctype html>
<html>
<head>
    <title>Example Do
--3d6b6a416f9b5
Content-Type: text/html
Content-Range: bytes 100-150/1270

eta http-equiv="Content-type" content="text/html; c
--3d6b6a416f9b5--

范围请求的响应

与范围请求相关的有三种状态:

  • 在请求成功的情况下,服务器会返回  206 Partial Content 状态码。
  • 在请求的范围越界的情况下(范围值超过了资源的大小),服务器会返回 416 Requested Range Not Satisfiable (请求的范围无法满足) 状态码。
  • 在不支持范围请求的情况下,服务器会返回 200 OK 状态码。

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值