206 Partial Content は、Range: bytes=0-1048575 のような Range ヘッダー付きのリクエストに対し、リソースのうち要求された部分だけを送るレスポンスです。範囲が 1 つの場合は bytes 0-1048575/52428800 のような Content-Range ヘッダーで示され、複数の範囲は multipart/byteranges のボディにまとめて送られます。
Range リクエストを使うと、動画や音声のプレーヤーはファイル全体をダウンロードせずにシークでき、ダウンロードマネージャーは中断したダウンロードを再開でき、PDF ビューアーは特定のページだけを読み込めます。サーバーは Accept-Ranges: bytes で対応していることを示します。クライアントは If-Range を使い、つなぎ合わせる部分がすべて同じバージョンのファイルから取得されたものであることを確かめます。
206 はヒューリスティックにキャッシュ可能で、キャッシュは保存済みの範囲を結合できます。
レスポンス例
HTTP/1.1 206 Partial Content
Date: Fri, 06 Nov 2026 10:15:32 GMT
Content-Type: video/mp4
Content-Range: bytes 0-1048575/52428800
Content-Length: 1048576
Accept-Ranges: bytes
ETag: "a3f1-3200000"
[first 1,048,576 bytes of the video] SEO とリダイレクトチェック
クローラーは通常ドキュメント全体をリクエストするため、ページはクローラーに 200 を返すべきです。リダイレクトチェックで 206 が表示されるのは、カスタムリクエストヘッダーなどでリクエストに Range ヘッダーを追加した場合だけです。Range ヘッダーのないリクエストに 206 を返すサーバーは、設定に誤りがあります。
よくある原因と主な用途
- メディアプレーヤーが動画の次のチャンクをリクエストしたり、別の再生位置にジャンプしたりした場合。
- ダウンロードマネージャーや
curl -C -が、中断したダウンロードを再開した場合。 - PDF ビューアーやアプリが、大きなファイルのうち必要な部分だけを取得した場合。