2010-07-20 40 views
1

Google Blobstore最近添加了對從blob提供部分字節範圍的支持。當調用此方法時,將使用HTTP 206(部分內容)狀態代碼生成響應。所以看起來應用引擎假定在這種情況下它始終服務於Range請求。Google Blobstore和HTTP 206響應

但是,在我的情況下,我已經將許多文件捆綁到一個blob條目中,並且我知道每個文件的字節範圍。從客戶的角度來看,他們只能訪問代表單個文件的URL。在幕後,我調用blob商店上的ByteRange based serve method來提供該文件。在我的情況下,HTTP 200是更合適的響應,但應用程序引擎總是返回206.

有沒有辦法覆蓋此行爲? (即返回200,而不是206?)

感謝, Keyur

回答

1

TBH 206是正確的代碼,因爲即使客戶端看到的是不同的服務器仍然只發送BLOB的一部分。

技術上,響應代碼是部分地存在,以幫助和啓用高速緩存,如果它返回200 OK到一系列請求,那麼只有一個局部實體將通過臨時代理這將假定(理所當然),它是一個完整的實體被緩存,這會混淆對進一步請求的迴應。必須始終考慮對緩存的影響,它們使Web工作成爲可能。

對不起,我不知道:)

+0

我理解緩存影響,事實上這就是爲什麼我一直在尋找一個200這裏。正如我所提到的,在我的情況下,客戶端沒有提出範圍請求。在這種情況下,查找blob的範圍是實現細節,而不是客戶端與服務器之間的契約。 – Keyur 2010-07-20 22:11:37

+0

啊道歉,我誤讀:) – nathan 2010-07-20 22:27:08