如果我请求某个范围且大小未知,那么Content-Range如何显示。
例如我的请求是" bytes = 100-200"流将在150结束。但在我开始流之前我不知道。我应该发送什么作为Content-Range标题?
bytes 100-/*
bytes 100-200/*
bytes 100-*/*
或者根本不是法律情况?
同样的问题,如果请求是开放式的:" bytes = 100 - "
答案 0 :(得分:1)
如果您请求的范围可以满足,则服务器应以206(部分内容)响应进行响应。请参阅RFC7233, sec. 4.1。
如果请求的资源的字节长度小于范围间隔的偏移量,或者关闭偏移量超出资源长度,则服务器应响应416(范围不可满足)。请参阅section 4.4。
要跳过内容的前100个字节,您确实应该包含Range: bytes=100-
标头。请参阅sec. 2.1和sec. 3.1。
对于具有未知长度并且正在以产生不可预测大小的内容块的方式读取的资源的情况:这是未被任何RFC批准的未定义行为。 Content-Range
标头的指定方式是当前范围或总内容大小未知,但不是两者都有。您无法使用HTTP信封作为指定范围长度的方法,因为服务器必须在使用206代码(参见sec 4.1)进行响应时提供Content-Range
标头。
处理这种情况的正确方法是: