1

Google Blobstoreは最近、blobから部分的なバイト範囲を提供するためのサポートを追加しました。このメソッドが呼び出されると、応答はHTTP 206(部分コンテンツ)ステータスコードで生成されます。したがって、この場合、AppEngineは常にRangeリクエストを処理していると想定しているようです。

ただし、私の場合、多くのファイルを1つのBLOBエントリにバンドルしており、それぞれのバイト範囲を知っています。クライアントの観点からは、個々のファイルを表すURLにのみアクセスします。舞台裏では、blobストアでByteRangeベースのserveメソッドを呼び出して、ファイルを提供します。私の場合、HTTP 200の方が適切な応答ですが、AppEngineは常に206を返します。

この動作をオーバーライドする方法はありますか?(つまり、206ではなく200を返しますか?)

ありがとう、Keyur

4

1 に答える 1

1

TBH 206 は正しいコードです。クライアントの認識が異なっていても、サーバーは BLOB の一部しか送信していないためです。

技術的には、応答コードはキャッシングを支援して有効にするために部分的に存在します。範囲要求に対して 200 OK を返す場合、部分的なエンティティのみが暫定プロキシによってキャッシュされ、完全なエンティティであると (当然のことながら) 仮定し、めちゃくちゃになります。さらなる要求への応答。キャッシュへの影響を常に考慮する必要があります。キャッシュは Web の多くを機能させます。

すみません、わかりません:)

于 2010-07-20T21:36:00.957 に答える