うまくいった証
206 は「君が指定した範囲だけ、その分のデータを返したよ」というサインです。 プールに例えると、「全長は泳がなくていい、ここからここまでだけ往復してみよう」と先生に区間を切られて、その区間だけを正確に泳ぎきる——あの「指定範囲だけクリア」の感触に似ています。
クライアントが Range ヘッダで「最初の 1MB だけ」「ここから 5MB だけ」と要求すると、サーバーはその部分だけを 206 で返します。動画プレイヤーのシーク、レジューム可能なダウンロード、大容量ファイルの効率配信に欠かせない仕組みです。
プールからのひとこと
プールでの練習では、いつも端から端まで泳ぐとは限りません。「今日は 25メートル のうち、最後の 10メートル だけタイムを計るよ」と先生が言えば、生徒はその区間だけ集中して泳ぎます。短くても、ちゃんとした成果として認められる。
206 もそれと同じです。「全部じゃなく一部だけ」を成功として返す。Content-Range ヘッダに「全体のどこを返したか」が入るので、クライアントは続きを取りに行くことも、必要な範囲だけ使うこともできます。
次への一歩
うまくいった、次はこうしてみよう:
Content-Rangeを見て位置を把握:全体のどの範囲かを確認してバッファに入れる- 必要なら追加 Range を要求:続きが必要なら次のチャンクをリクエスト
- 不正な範囲には 416 が返ることを想定:境界外を要求しないよう注意
- ストリーミングは Range 対応必須 (管理者向け):CDN や静的配信サーバーが Range をサポートしているかを確認
実際にはこう見える
$ リクエスト
curl -i https://example.com/some/path ↓ レスポンス
HTTP/1.1 206 Partial Content
Content-Type: text/html; charset=utf-8
<!DOCTYPE html>
<html><body><h1>206 Partial Content</h1></body></html>