Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http 内容范围和范围标题之间的差异?_Http_Http Headers - Fatal编程技术网

Http 内容范围和范围标题之间的差异?

Http 内容范围和范围标题之间的差异?,http,http-headers,Http,Http Headers,HTTP头内容范围和范围之间的区别是什么?什么时候使用 我正在尝试从特定字节偏移量流式传输音频文件。我应该使用内容范围还是范围标题 Thank用于请求特定的字节范围。在响应中使用,以指示服务器提供给您的字节(可能与您请求的范围不同),以及整个内容的长度(如果已知)。实际上,接受的答案不完整。内容范围不仅用于响应。在提供实体实体的请求中也是合法的 例如,HTTP PUT提供一个实体体,它可能只提供实体的一部分。因此,PUT请求可以包括一个contentrange头,向服务器指示部分实体主体应该合并

HTTP头内容范围和范围之间的区别是什么?什么时候使用

我正在尝试从特定字节偏移量流式传输音频文件。我应该使用内容范围还是范围标题


Thank

用于请求特定的字节范围。在响应中使用,以指示服务器提供给您的字节(可能与您请求的范围不同),以及整个内容的长度(如果已知)。

实际上,接受的答案不完整。内容范围不仅用于响应。在提供实体实体的请求中也是合法的

例如,HTTP PUT提供一个实体体,它可能只提供实体的一部分。因此,PUT请求可以包括一个contentrange头,向服务器指示部分实体主体应该合并到实体中的位置

例如,让我们首先使用HTTP创建并附加到文件:

请求1:

PUT /file HTTP/1.1
Host: server
Content-Length: 1

a
请求2:

PUT /file HTTP/1.1
Host: server
Content-Range: bytes 1-2/*
Content-Length: 1

a
如何,让我们看看文件的内容

请求3:

GET /file HTTP/1.1
Host: server

HTTP/1.1 200 OK
Content-Length: 2

aa

这允许通过HTTP读取和写入随机文件。我只是想澄清一下,因为我正在开发一个WebDAV客户端,研究内容范围的使用,所以这个扩展的信息可能会对其他人有用。

@BrunoMartinez,而您可以在请求中使用内容范围,从问题中可以清楚地看出,OP询问的是下载特定范围的内容。我的回答是基于OP的要求,而不是试图对每一个可以使用内容范围的案例进行全面的描述。@BrianCampbell你当然是对的。为了子孙后代,我只想记录下我的发现。我编辑了我的答案,以确保它不会给人留下你的答案有任何错误的印象。@B没问题!谢谢你给我一个更完整的解释;如果你在谷歌搜索中找到该页面,它总是很有用的。内容范围在请求中是不合法的。该评论是不正确的。RFC2616()没有将
内容范围
头限制为请求,而是将其绑定到“部分实体体”。事实上,使用该功能来方便上传简历或分块上传是非常常见的。我认为
内容范围
可以用于请求。请参阅关于PUT方法的部分:-
实体的收件人不得忽略其不理解或未实现的任何内容-*(例如,内容范围)标题,并且必须返回501(未实现)在这种情况下的响应。
-请求可能包含
内容范围
标题,服务器应该考虑它。@nietaki当然,但这并不等于说它实际上按照应答者描述的方式工作——我的意思是,这是一个保证的501。@BeniCherniavsky Paskin在第4.3.4节中查看的不是草稿版本,而是“允许对给定目标资源进行PUT的源服务器必须向包含内容范围标头字段(…)的PUT请求发送400(错误请求)响应”。当然,RFC的作者只是人类,他们确实会犯错误,RFC确实会在痛苦中进化,但很明显,Content Range header并不打算在请求中使用,也没有多大意义。