1

Google Blobstore 最近添加了对从 blob 提供部分字节范围的支持。调用此方法时,将使用 HTTP 206(部分内容)状态代码生成响应。因此,在这种情况下,应用引擎似乎假定它始终服务于 Range 请求。

但是,在我的情况下,我将许多文件捆绑到一个 blob 条目中,并且我知道每个文件的字节范围。从客户的角度来看,他们只访问代表单个文件的 URL。在幕后,我在 blob 存储上调用基于 ByteRange 的 serve 方法来提供文件。在我的情况下,HTTP 200 是更合适的响应,但是应用程序引擎总是返回 206。

有没有办法覆盖这种行为?(即返回 200 而不是 206?)

谢谢, 凯尔

4

1 回答 1

1

TBH 206 是正确的代码,因为即使客户端看到不同,服务器仍然只发送 blob 的一部分。

从技术上讲,响应代码部分用于帮助和启用缓存,如果它向范围请求返回 200 OK,那么只有部分实体会被临时代理缓存,这些代理会(正确地)假设它是完整的实体,这会搞砸对进一步要求的回应。必须始终考虑对缓存的影响,它们使大部分网络工作。

对不起,我不知道:)

于 2010-07-20T21:36:00.957 回答