gpt4 book ai didi

HTTP/1.1 响应多个范围

转载 作者:可可西里 更新时间:2023-11-01 15:10:23 26 4
gpt4 key购买 nike

在编写我的 HTTP/1.1 服务器时,我在处理多个范围请求时遇到了困难。

RFC 2616 的第 14.35.1 节引用了一些示例,但没有阐明服务器行为。例如:

GET /some/resource HTTP/1.1
...
Range: bytes=200-400,100-300,500-600
...

我应该返回这个确切的字节序列吗?或者我应该合并所有范围,发送 100-400,500-600?或者发送介于两者之间的所有内容,100-600

最糟糕的是,当检查 Content-Range 响应 header (第 14.16 节)时,可能只返回一个范围,所以我想知道服务器将如何响应第 14.35.1 节 中的示例bytes=0-0,-1!!!

我的服务器应该如何处理此类请求?

最佳答案

我刚刚查看了支持 Range header 字段的其他服务器可能如何响应并快速 curlexample.com :

~# curl -s -D - -H "Range: bytes=100-200, 300-400" http://www.example.com
HTTP/1.1 206 Partial Content
Accept-Ranges: bytes
Content-Type: multipart/byteranges; boundary=3d6b6a416f9b5
Content-Length: 385
Server: ECS (fll/0761)


--3d6b6a416f9b5
Content-Type: text/html
Content-Range: bytes 100-200/1270

eta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="vieport" content
--3d6b6a416f9b5
Content-Type: text/html
Content-Range: bytes 300-400/1270

-color: #f0f0f2;
margin: 0;
padding: 0;
font-family: "Open Sans", "Helvetica
--3d6b6a416f9b5--

显然,您正在寻找的是 Content-Type: multipart/byteranges;边界 响应头。谷歌搜索到底是什么 a W3C document with appendices to RFC 2616

When an HTTP 206 (Partial Content) response message includes the content of multiple ranges (a response to a request for multiple non-overlapping ranges), these are transmitted as a multipart message-body. The media type for this purpose is called "multipart/byteranges".
The multipart/byteranges media type includes two or more parts, each with its own Content-Type and Content-Range fields. The required boundary parameter specifies the boundary string used to separate each body-part.

到此为止。

顺便说一句,服务器在example.com不检查重叠的字节范围并准确地向您发送您请求的范围...

关于HTTP/1.1 响应多个范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18315787/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com