Google blobstore和HTTP 206响应

时间:2010-07-20 18:48:30

标签: java http google-app-engine blobstore

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

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

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

谢谢, Keyur

1 个答案:

答案 0 :(得分:1)

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

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

抱歉,我不知道:)。