Accept-Ranges Byte Serving — Range Request and Partial Content Download Errors
About Accept-Ranges Byte Serving
Fix HTTP range request errors including 416 Range Not Satisfiable, partial content download failures, and video/audio streaming seeking issues. 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: Accept-Ranges: bytes indicates the server supports partial content downloads via Range requests. Clients use Range: bytes=0-1023 to request specific byte ranges of a resource. Server responds with 206 Partial Content and Content-Range header for successful range requests. Video and audio streaming relies on range requests for seeking within media files. 416 Range Not Satisfiable is returned when the requested range is outside the content bounds. Understanding these fundamentals will help you diagnose and resolve this issue more effectively.
The most common reasons this occurs include: Server not supporting range requests — missing Accept-Ranges header. CDN stripping Range headers or not forwarding partial content responses. Range request specifying bytes beyond the end of the file. Dynamic content that cannot be served in byte ranges due to unknown content length. Identifying the root cause is the first step toward finding the right solution.
To resolve this, follow these recommended steps: Add Accept-Ranges: bytes header to responses for static files, media, and large downloads. Handle Range header in your application: parse the byte range and return 206 with Content-Range header. Return 416 Range Not Satisfiable with Content-Range: bytes */total-size for invalid ranges. Configure your CDN to forward Range headers and cache partial content responses. Test range requests: 'curl -r 0-1023 -o partial.dat https://your-server.com/largefile.zip'. 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
Why is my video not seeking properly?
Video seeking requires the server to support range requests. Check that the server sends Accept-Ranges: bytes header and correctly handles Range request headers to return 206 Partial Content.
Overview
Fix HTTP range request errors including 416 Range Not Satisfiable, partial content download failures, and video/audio streaming seeking issues.
Key Details
- Accept-Ranges: bytes indicates the server supports partial content downloads via Range requests
- Clients use Range: bytes=0-1023 to request specific byte ranges of a resource
- Server responds with 206 Partial Content and Content-Range header for successful range requests
- Video and audio streaming relies on range requests for seeking within media files
- 416 Range Not Satisfiable is returned when the requested range is outside the content bounds
Common Causes
- Server not supporting range requests — missing Accept-Ranges header
- CDN stripping Range headers or not forwarding partial content responses
- Range request specifying bytes beyond the end of the file
- Dynamic content that cannot be served in byte ranges due to unknown content length
Steps
- 1Add Accept-Ranges: bytes header to responses for static files, media, and large downloads
- 2Handle Range header in your application: parse the byte range and return 206 with Content-Range header
- 3Return 416 Range Not Satisfiable with Content-Range: bytes */total-size for invalid ranges
- 4Configure your CDN to forward Range headers and cache partial content responses
- 5Test range requests: 'curl -r 0-1023 -o partial.dat https://your-server.com/largefile.zip'