Error Codes Wiki

HTTP Range Requests — 206 Partial Content and 416 Range Not Satisfiable

Warning2xx success

About HTTP Range Requests

Understand HTTP range requests including 206 Partial Content for resume downloads and 416 Range Not Satisfiable when the requested range is invalid. This guide covers everything you need to know about this topic, including common causes, step-by-step solutions, and answers to frequently asked questions.

Here are the key things to understand: Range requests allow clients to request a specific portion of a resource using the Range header. 206 Partial Content confirms the server is sending only the requested byte range. 416 Range Not Satisfiable means the requested range exceeds the resource size. Essential for video streaming (seeking), download resumption, and large file transfers. The Accept-Ranges: bytes header in server responses indicates range request support. Understanding these fundamentals will help you diagnose and resolve this issue more effectively.

The most common reasons this occurs include: Download client requesting a range beyond the file size (causes 416). Corrupted partial download file causing mismatched byte offset on resume. Server not supporting range requests — returns 200 with full content instead of 206. CDN stripping Range headers or not forwarding them to origin server. Identifying the root cause is the first step toward finding the right solution.

To resolve this, follow these recommended steps: Check if the server supports ranges: look for Accept-Ranges: bytes in response headers. For 416 errors: delete the partial download and start fresh. Verify the Content-Length matches expected file size before resuming a download. Use curl with --range 0-1023 to test range request support on a server. For servers: enable Range request support in nginx (default) or Apache (mod_headers). If these steps do not resolve the issue, consider consulting additional resources or a qualified professional.

This article is part of our HTTP Status Codes collection on Error Codes Wiki. We provide comprehensive, up-to-date information to help you find solutions quickly.

Quick Answer

How does video seeking use range requests?

When you seek to a position in a video, the player sends a Range header requesting bytes from that position. The server responds with 206 and the requested portion.

Overview

Understand HTTP range requests including 206 Partial Content for resume downloads and 416 Range Not Satisfiable when the requested range is invalid.

Key Details

  • Range requests allow clients to request a specific portion of a resource using the Range header
  • 206 Partial Content confirms the server is sending only the requested byte range
  • 416 Range Not Satisfiable means the requested range exceeds the resource size
  • Essential for video streaming (seeking), download resumption, and large file transfers
  • The Accept-Ranges: bytes header in server responses indicates range request support

Common Causes

  • Download client requesting a range beyond the file size (causes 416)
  • Corrupted partial download file causing mismatched byte offset on resume
  • Server not supporting range requests — returns 200 with full content instead of 206
  • CDN stripping Range headers or not forwarding them to origin server

Steps

  1. 1Check if the server supports ranges: look for Accept-Ranges: bytes in response headers
  2. 2For 416 errors: delete the partial download and start fresh
  3. 3Verify the Content-Length matches expected file size before resuming a download
  4. 4Use curl with --range 0-1023 to test range request support on a server
  5. 5For servers: enable Range request support in nginx (default) or Apache (mod_headers)

Tags

range-request206416partial-contentdownload-resume

Related Items

More in 2xx Success

Frequently Asked Questions

When you seek to a position in a video, the player sends a Range header requesting bytes from that position. The server responds with 206 and the requested portion.