提供 HTTP 206 响应的专业方式是什么

What is the professional way of serving HTTP 206 responses

如果服务器 set-up 可以处理 Range requests,例如通过接受字节,那么大致有两种方法可以向该服务器发送有效请求。

首先是将范围 header 设置为类似 Range: 0- 的内容,这意味着我们想要服务器正在提供的任何内容的第一个字节,而对其余内容不感兴趣。服务器能给多少就给多少。

第二个是将范围 header 设置为类似 Range: 0-2000/* 的内容,这意味着我们明确想要字节 0 到 2000,我们不关心服务器的文件有多大服务。

这些请求 - 如果服务器认为有效(我们现在声明,确实有效) - 然后由 HTTP 206 响应回答。

我的问题是:如上所述,通过部分响应提供文件的最专业方法是什么。它是否会为发送请求的客户端立即没有的所有字节提供服务,即如果带有 Range: 0- 的请求通过最后一个字节提供字节 0?还是拆分文件,当带有 Range: 0- 的请求仅提供多个字节时,即字节 0 到 500?或者完全不同的东西?

我有这个问题是因为我当前的代码库似乎正在阻塞,因此在给定时间最多只能处理五个左右的请求。

来自RFC7233, section 2.1

A client can limit the number of bytes requested without knowing the size of the selected representation. If the last-byte-pos value is absent, or if the value is greater than or equal to the current length of the representation data, the byte range is interpreted as the remainder of the representation (i.e., the server replaces the value of last-byte-pos with a value that is one less than the current length of the selected representation).

所以这意味着范围如:

Range: 0-

应解释为'serve the entire file'。