We recommend using the Large File Delivery Optimization feature if you are serving content larger than 10 MB. With this option enabled, Gcore CDN will make range requests to the origin to retrieve 10 MB chunks of content. These chunks are then collected in the cache, and once the CDN has the necessary portions of the requested content, the response is assembled and returned to the end user.
A range request includes the Range HTTP header to indicate the byte or part of the content to be returned. For example, if the request has a Range: bytes=123537047-123545047 header, the CDN will request a 10 MB chunk from the origin (byte range 115343360-125829119), cache this chunk, and serve the requested range (123537047-123545047) to the end user.
For this option to work, the origin server must support range requests.
Configuration guidelines
Large File Delivery Optimization can be configured in the Resource Settings and Rules. Review the following requirements and recommendations before configuring the option:
- The origin server must support HTTP Range Requests.
- The Content-Length and Etag headers must be consistent across the origin.
- Large File Delivery Optimization will be applied to all contents in the CDN resource, which could lead to an increased load on the origin. Therefore, consider activating Origin Shielding before using this feature, or make any updates during off-peak hours.
- Remember to purge the resource cache after enabling Large File Delivery Optimization.
- Large File Delivery Optimization cannot be used in conjunction with Fetch Compressed, Gzip Compression, and Brotli Compression within the Resource Settings or within the same rule.
- HLS and MPEG-DASH don’t need slicing — those streams are already split into small segments that the CDN caches individually.
Example of large file slicing
Example of a video file which is a progressive MP4 of several GB. CDN fetches the file from origin in fixed-size chunks using HTTP Range requests, caches each chunk independently, and serves the requested byte range to the viewer.
When a viewer requests a byte range of a large file, the CDN maps it to the 10 MB chunk(s) that contain it, fetches only those chunks from origin (through the shield), caches them, and assembles the response:
Viewer requests bytes 0–1 MB of movie.mp4 (a 2 GB file)
│
▼
┌───────────┐ needs chunk #1 (bytes 0–10 MB) → cache MISS
│ CDN edge │
└─────┬─────┘
│ Range: bytes=0-10485759
▼
┌───────────┐ chunk cached? no → one Range request to origin
│ Shield │ ───────────────────────────────►┌──────────┐
└─────┬─────┘ ◄──────── 10 MB chunk #1 ───────│ Origin │
│ caches chunk #1 └──────────┘
▼
┌───────────┐
│ CDN edge │ caches chunk #1, returns bytes 0–1 MB to viewer
└───────────┘
Later: viewer seeks to bytes 1-2 MB or 2-3 MB → data is taken from the same already cached 0-10 MB chunk #1.
Configuration steps
To enable Large File Delivery Optimization option via the Gcore Customer Portal, follow these three steps:
1. Go to CDN and select the CDN resource you want to configure.
2. In the navigation panel, under Content, click Large files delivery optimization.
3. Turn on the toggle for Enable Large files delivery optimization.
WarningWhen Large File delivery optimization is enabled, the HTTP Etag header will be concealed in responses.