gpt4 book ai didi

http - 对部分内容的响应,如果大小未知。范围请求如 "bytes=100-"

转载 作者:可可西里 更新时间:2023-11-01 17:34:27 25 4
gpt4 key购买 nike

如果我请求的范围和大小未知,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.1sec. 3.1

就长度未知且正在以产生不可预测大小的内容 block 的方式读取的资源而言:这是未定义的行为,未被任何 RFC 认可。 Content-Range header 的指定方式是当前范围总内容大小未知,但不能同时未知。您不能使用 HTTP 信封作为指定范围长度的一种方式,因为服务器在使用 206 代码响应时必须提供Content-Range header (参见 sec 4.1 ) .

正确的处理方式是:

  1. 验证范围请求
  2. 正在尝试从请求的资源中读取足够数量的字节
  • 如果可以检索到足够数量的字节,则创建 HTTP 信封,指定范围并附加正文。如果需要切断,
  • 在任何其他情况下:用 416 响应

关于http - 对部分内容的响应,如果大小未知。范围请求如 "bytes=100-",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35917784/

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