IPTV AUSTRALIA · 1 MONTH AUD $11.99 TOTALInstall your player. Request a one-day trial ↗

Help · IPTV Australia

Conditional range requests and safe resumption

If-Range lets a client ask for a byte range only when the representation still matches a known validator. If it has changed, the server can send the new complete representation. This prevents the client from blindly joining pieces from different versions.

Resuming is also a version problem

A partially downloaded resource is useful only if the remaining bytes belong to the same representation. A publisher might replace a file while preserving its address. The new file can even have the same length as the old one, so matching the URL and size is insufficient.

With Range and an appropriate If-Range validator, the client expresses a conditional request: provide the requested portion if the known representation still applies; otherwise provide the full current representation. This differs from assuming that a returned suffix is always safe to append.

An original two-version example

A client has the first 4000 bytes of a 10,000-byte object marked with strong ETag edition-A. Before resumption, the publisher replaces it with edition-B. A matching If-Range check would allow a suffix for A; a non-match causes the range to be ignored and the complete selected representation to be sent instead.

The client must recognise the 200 whole-response result and handle it as a replacement, not append it after the old beginning. If it appends the new 10,000 bytes to the old 4000, it manufactures a 14,000-byte mixture that the server never published.

Validators have specific rules

RFC 9110 places restrictions on validators used in If-Range. A weak entity tag is not suitable for this request field. Date validators also require the applicable strong-validator conditions. These details matter for software implementing resumption, although a viewer normally relies on the downloader or player to handle them.

When a download restarts unexpectedly, inspect whether the resource changed and whether the server returned the full representation. Restarting can be correct behaviour rather than a fault. A report should distinguish a deliberate complete replacement from a connection loss that discarded progress without a version change.

Questions about this guide

Can a valid resume attempt return 200?

Yes. If the representation no longer matches, a full current response can be the correct result.

Can two versions have the same file size?

Yes. Size alone is not a representation validator.

Sources and further reading

Get your setup right from the start.

Tell us your device and player. We’ll help you take the next step with a clear plan enquiry or trial request.

Talk to IPTV Australia ↗