1. ホーム
  2. http

[解決済み] HTTP Range ヘッダー

2023-04-28 21:19:43

質問

私が読んでいたのは http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35 を読んでいて、ファイルのダウンロードを継続する方法を見つけようとしていました。

たとえば、長さ 100 バイトのファイルがあり、私はその 100 バイトをすべて持っているとします。しかし、予想されるファイル サイズが分からないので、ファイルを要求し、次のような Range ヘッダーを指定します。

Range: bytes=100-

これは有効なRangeリクエストですか?

どのように解決するのですか?

これは構文的には有効なリクエストですが、満足できるリクエストではありません。 そのセクションをさらに見てみると

構文的に有効なbyte-range-setが、最初のバイト位置がentity-bodyの現在の長さよりも小さい少なくとも1つのbyte-range-spec、または0以外の接尾辞長を持つ少なくとも1つの接尾辞-range-specを含む場合、そのbyte-range-setは満足できるものである。そうでない場合は、バイトレンジ集合は満たされません。 byte-range-set が満足できない場合、サーバーはステータス 416 (Requested range not satisfiable) でレスポンスを返すべきです (SHOULD)。 . そうでない場合、サーバーはエンティティボディの充足可能な範囲を含む206 (Partial Content)のステータスを持つ応答を返すべきです(SHOULD)。

ですから、あなたの例では、そのファイルの有効なバイト範囲ではないので、サーバーは416を返すべきだと思います。