Range リクエストとは、Range ヘッダーを含むオリジンリクエストのことです。 オリジンサーバーが Range リクエストを受信すると、Edge Security Acceleration (ESA) キャッシュにリクエストされた範囲が含まれています。 ここで、 は投稿 ID です。
仕組み
Range ヘッダーは、取得するコンテンツの部分を指定する HTTP ヘッダーです。たとえば、Range: bytes=0-100 は、オリジンサーバーがリクエストされたファイルの最初の 101 バイトを返す必要があることを指定します。
ESA が Range リクエストを受信すると、リクエストされた範囲がキャッシュされていないか、期限切れの場合、リクエストをオリジンに転送します。ESA は、今後のリクエストのために、取得したリソースをプレゼンスポイント(POP)にキャッシュします。
次の図は、範囲リクエストの仕組みを示しています。
始める前に
オリジンサーバーが HTTP Range リクエストをサポートしており、オリジンサーバーが HTTP 206 状態コード(部分コンテンツメッセージ)でリクエストに応答できることを確認してください。オリジンサーバーが HTTP 範囲リクエストをサポートしていない場合、リソースは POP にキャッシュできません。
リクエストされたリソースが、ファイルサフィックスが ESA の デフォルトのキャッシュ可能なファイルリストに含まれていない動的リソースである場合、ESA はそのようなタイプのリソースに対してキャッシュポリシーを設定しません。また、応答におけるキャッシュステータスが
DYNAMICである場合、このリクエストはレンジリクエストとして処理されません。範囲リクエストが送信されると、オリジンフェッチのクエリ/秒(QPS)が増加します。オリジンサーバーでレート制限機能が有効になっている場合、オリジンサーバーに送信されたリクエストがスロットルされる可能性があります。この問題を防ぐために、ESA の オリジン保護を有効にし、ESA のオリジンフェッチ POP の IP アドレスをオリジンサーバーの IP アドレスホワイトリストに追加できます。
範囲チャンクサイズ
チャンクサイズは、全体的なリソースのヒット率とキャッシュされていないリソースのダウンロード速度に影響を与える可能性があります。したがって、必要に応じて調整してください。
Range リクエストが有効になっている場合、チャンクサイズを 512 KB、1 MB、2 MB、または 4 MB に設定できます。デフォルト値は 512 KB です。次の 2 つのシナリオは、ベストプラクティスを示しています。
良好なネットワークパフォーマンスの場合:ESA POP とオリジン間のオリジンフェッチネットワークのレイテンシが低い場合は、小さい範囲のチャンクサイズを使用することをお勧めします。これにより、ダウンロード速度が向上し、キャッシュヒット率が向上します。
平均的なネットワークパフォーマンスの場合:オリジンフェッチネットワークのレイテンシが高い場合(たとえば、国境を越えたダウンロードや長距離ダウンロードの場合)、大きい範囲のチャンクサイズをお勧めします。これは最適なキャッシュヒット率を提供しない可能性がありますが、ダウンロード速度の向上に役立ちます。
Range リクエストの設定
ESA コンソールで、[ウェブサイト] を選択し、管理するウェブサイトの名前をクリックします。
左側のナビゲーションウィンドウで、 を選択します。
[ルールを追加] をクリックし、[ルール名] に入力します。
[リクエストが以下のルールと一致する場合...] 領域で、受信リクエストと一致する条件を指定します。ルールの設定方法の詳細については、「ルール」をご参照ください。
[Range リクエスト] セクションで、[設定] をクリックします。 [クライアントに一致 (デフォルト)]、[無効]、または [有効 (大きなファイルがリクエストされた場合に推奨)] を選択します。
[クライアントに一致 (デフォルト)] または [有効 (大容量ファイルの場合に推奨)] を選択した場合は、[シャードサイズ] パラメーターを設定できます。有効値:[512 KB]、[1 MB]、[2 MB]、[4 MB]。デフォルト値:[512 KB]。
[オリジンモード]
[クライアントに一致 (デフォルト)]
クライアントが ESA POP に Range リクエストを送信すると、ESA POP はリクエストをオリジンに転送します。オリジンサーバーにリダイレクトされるリソースの最初のリクエストでは、ESA は Range ヘッダーの値を最も近い整数(この場合はシャードサイズの整数倍)に切り上げます。同じリソースの後続のリクエストでは、Range ヘッダーのサイズを [シャードサイズ] パラメーター の値に設定できます。
例: [シャードサイズ] パラメーターが [512 KB] に設定されている場合、クライアントは
Range:bytes=0-614399(600 KB)を含むリクエストを ESA POP に送信します。ESA POP は、最初のリクエストでオリジンサーバーからサイズが 1,024 KB(600 KB から切り上げた最も近い整数)のコンテンツを取得し、後続のリクエストでサイズが 512 KB のコンテンツを取得します。[無効]
ESA POP は、リクエストに Range ヘッダーが含まれているかどうかに関係なく、オリジンサーバーからファイル全体を取得します。このような場合、大きなファイル配信シナリオでは、ファイル配信効率が予想よりも低くなります。
例:クライアントは
Range:bytes=0-100を含むリクエストを ESA POP に送信します。ESA POP は、Range ヘッダーなしでリクエストをオリジンサーバーにリダイレクトします。オリジンサーバーはファイル全体を ESA POP に返します。ESA POP はファイルをキャッシュすると同時に、range:0-100で指定されたリクエストされた範囲をクライアントに提供します。[有効 (大きなファイルがリクエストされた場合に推奨)]
ESA POP は、リクエストに Range ヘッダーが含まれているかどうかに関係なく、Range ヘッダーを含めてクライアントリクエストをオリジンサーバーにリダイレクトします。すべての範囲リクエストは、設定されたサイズ([シャードサイズ] パラメーターの値)のコンテンツをオリジンサーバーからプルします。
例:該当なし
[シャードサイズ]
[オリジンモード] パラメーターが [クライアントに一致 (デフォルト)] または [有効 (大容量ファイルの場合に推奨)] に設定されている場合、このパラメーターは有効です。有効値:[512 KB]、[1 MB]、[2 MB]、[4 MB]。デフォルト値:[512 KB]。
例:[1 MB]。
[OK] をクリックします。