本日、さくらのCDN ウェブアクセラレータにおいて機能追加のメンテナンスを実施いたしました。
これまで、0バイト目からレンジリクエストされるデータはキャッシュできずにオリジンへパススルーしておりましたが、1回目のレンジリクエスト時にオリジンサーバにパススルーしつつバックグラウンドでファイル全体を取得、キャッシュできた後のレンジリクエストにはキャッシュサーバから配信を行います。
Google Chrome ブラウザでvideoタグを利用するとブラウザからのリクエストに Range: bytes=0- が強制的に追加されてウェブアクセラレータのキャッシュ機能が利用できませんでしたが、今回の機能追加によりこの場合でもキャッシュ後のアクセスはキャッシュサーバからコンテンツが配信されます。
機能追加前後の挙動については以下をご確認ください。
機能追加前
Range: bytes=0- で1回目のアクセスがあった時
↓
初回リクエストはオリジンへパススルー、以後もレンジリクエストに対応していないためs-maxageが付与されていたとしてもレンジリクエストが行われた場合は全てキャッシュせずにパススルーする。レンジリクエストが行われている限りファイルはキャッシュされない。
機能追加後
同様のリクエストが有った場合
↓
機能追加前と同様にオリジンから取得したレンジリクエスト結果のデータをユーザへ返す。
ファイルに s-maxage の指定があった場合キャッシュ対象ファイルとみなし、オリジンへレンジリクエストをパススルーしつつレンジリクエストされたファイルの全体をバックグラウンドでオリジンサーバから取得。以後 s-maxage 指定時間内のレンジリクエストと通常リクエストにはキャッシュサーバが応答する。
※このため、機能追加前の仕様を前提として運用されている場合、オリジンサーバへのリクエストが増加しますのでご注意ください。レンジリクエストを利用していないお客様につきましては機能追加の影響はございません。
今後ともさくらのCDN ウェブアクセラレータをよろしくお願いいたします。