对部分内容的响应,如果大小未知。范围请求如 "bytes=100-"
Response to Partial Content, if size is unknown. Range request like "bytes=100-"
如果我请求的范围和大小未知,Content-Range 看起来如何。
比如我的请求是"bytes=100-200",流会在150结束。但是我在开始流之前不知道。我应该发送什么 Content-Range header?
bytes 100-/*
bytes 100-200/*
bytes 100-*/*
或者根本不合法?
同样的问题,如果请求是开放式的:"bytes=100-"
如果您请求一个可满足的范围,服务器应该响应 206(部分内容)响应。参见 RFC7233, sec. 4.1。
如果请求资源的字节长度小于范围间隔的偏移量,或者关闭偏移量超出资源长度,服务器应响应416(范围不可满足)。参见 section 4.4。
要跳过内容的前 100 个字节,您确实是正确的,请求中应该包含一个 Range: bytes=100-
header。参见 sec. 2.1 and sec. 3.1。
就长度未知且正在以产生不可预测大小的内容块的方式读取的资源而言:这是未定义的行为,未被任何 RFC 认可。 Content-Range
header 的指定方式是当前范围 或 总内容大小未知,但不能同时为两者。您不能求助于 HTTP 信封作为指定范围长度的一种方式,因为服务器 必须 在使用 206 代码响应时提供 Content-Range
header(参见sec 4.1).
正确的处理方式是:
- 正在验证范围请求
- 正在尝试从请求的资源中读取足够数量的字节
- 如果可以检索到足够数量的字节,则创建 HTTP 信封,指定范围并附加 body。如果需要,请切断,
- 在任何其他情况下:响应 416
如果我请求的范围和大小未知,Content-Range 看起来如何。
比如我的请求是"bytes=100-200",流会在150结束。但是我在开始流之前不知道。我应该发送什么 Content-Range header?
bytes 100-/*
bytes 100-200/*
bytes 100-*/*
或者根本不合法?
同样的问题,如果请求是开放式的:"bytes=100-"
如果您请求一个可满足的范围,服务器应该响应 206(部分内容)响应。参见 RFC7233, sec. 4.1。
如果请求资源的字节长度小于范围间隔的偏移量,或者关闭偏移量超出资源长度,服务器应响应416(范围不可满足)。参见 section 4.4。
要跳过内容的前 100 个字节,您确实是正确的,请求中应该包含一个 Range: bytes=100-
header。参见 sec. 2.1 and sec. 3.1。
就长度未知且正在以产生不可预测大小的内容块的方式读取的资源而言:这是未定义的行为,未被任何 RFC 认可。 Content-Range
header 的指定方式是当前范围 或 总内容大小未知,但不能同时为两者。您不能求助于 HTTP 信封作为指定范围长度的一种方式,因为服务器 必须 在使用 206 代码响应时提供 Content-Range
header(参见sec 4.1).
正确的处理方式是:
- 正在验证范围请求
- 正在尝试从请求的资源中读取足够数量的字节
- 如果可以检索到足够数量的字节,则创建 HTTP 信封,指定范围并附加 body。如果需要,请切断,
- 在任何其他情况下:响应 416