Resuming downloads through proxies with Range and ETag
Resume a transfer safely and prevent pieces from different file versions being assembled after an ETag change.

Resume a transfer safely and prevent pieces from different file versions being assembled after an ETag change. This original WorldProxy guide cross-checks five standards and official sources, ties each conclusion to an observable stage, and uses only owned or explicitly authorized systems.
Core idea
Range requests select part of a representation, while If-Range binds continuation to a validator. When the resource changes, the server should return the complete new representation rather than a range from the old one.
For Resuming downloads through proxies with Range and ETag, separate the protocol specification from product features. A standard defines message formats and required behavior; a service separately defines geography, rotation, duration, and supported commands. This explains why clients accept different connection formats or omit an optional protocol capability.
What the primary source establishes
Resume a transfer safely and prevent pieces from different file versions being assembled after an ETag change.
The primary source, RFC 9110 — Range Requests, RFC 9111 — HTTP Caching, RFC 9530 — Digest Fields, MDN Range, MDN If-Range, defines the technical baseline but not every client and provider configuration. Read the normative behavior with its version and then verify your implementation. Treat anything beyond the source as a product feature that needs separate confirmation.
Controlled lab
Serve a 12 MiB pseudorandom file with ETag, Accept-Ranges, and Content-Digest. Fetch the first 4 MiB and resume. Then replace content at the same size. The stale If-Range must produce a full 200, and the assembled file must match only the new digest.
Step-by-step verification
Publish an immutable test file with a known digest, interrupt at a precise boundary, and continue with Range plus a strong ETag. Replace content and ETag at the same URL and retry the stale If-Range.
Build a capability matrix for address syntax, TCP or UDP, DNS location, authentication, and IPv6. Fill it from client and service documentation. Test one capability at a time on an endpoint you control, starting with basic TCP before DNS, TLS, and the application flow.
Record whether failure occurred during address parsing, authentication choice, tunnel creation, TLS, or the origin response. SOCKS errors, HTTP CONNECT rejection, and an origin 403 need different remedies even though all can look like an unopened page.
- Record validator and digest
- Interrupt at a known offset
- Resume with If-Range
- Replace content and require a full response
Evidence to retain
Keep a token-free URL, ETag, Last-Modified, Range, status, Content-Range, received bytes, and final digest. Version all partial files.
Capture the protocol version, client command, masked destination, intermediary code, and origin code. State who resolved DNS. Packet captures belong only on an isolated test setup and should omit payload; a sanitized verbose client log is usually sufficient.
Define report columns and time format before the run. A result without context becomes a guess: the address, cache state, and changed condition are unknown. Record controlled failures as well as successes so the check proves that it can distinguish states.
Interpreting the result
A correct client distinguishes 206, 200, and 416, validates Content-Range, and checks the final digest. A proxy cache must not combine incompatible partial responses.
Not every resource supports ranges, weak ETags are unsuitable for If-Range, and compressed representations can have distinct ranges and validators.
One successful run confirms only one client, route, and moment. Repeat while changing one variable and state the limits. When observation conflicts with documentation, rule out cache, client version, and intermediaries before creating a reproducible support case.
Worked decision process
For Resuming downloads through proxies with Range and ETag, use a matrix with capability, specification, proxy service, client, and verified behavior. Remote DNS or UDP may exist in a standard yet be unavailable in one library. Only the intersection is a supported workflow.
Capture the smallest useful trace: intermediary address, command, masked destination, intermediary result, TLS state, origin result, and DNS resolver. This separates syntax, policy, network, and origin failures without retaining payload or credentials.
Verify a second client version, one alternative address form, and a controlled failure. Publish version and platform limits beside connection examples. One successful implementation is not evidence for every client.
Common mistakes
Do not equate SOCKS5 with encryption, expect UDP from every client, omit brackets around IPv6 plus port, or treat HTTP/2 as a speed guarantee. Verify the implementation: a standardized command may be intentionally unsupported by the product or library.
Stop when errors rise, a source returns a limit, the task would require bypassing protection, or secrets enter logs. Save sanitized diagnostics and correct the cause first. More concurrency or another IP can hide the fault and add load without improving evidence.
Rollout and maintenance criteria
Define the decision boundary before rollout: which observation permits continuation, which requires review, and which stops the workflow. Record acceptable error ratio, maximum wait, and the owner of every exception so a temporary failure cannot silently become permanent configuration.
Review real load, cost, and quality after the first week. Schedule a small control after client, proxy-service, or network changes. Archive outdated instructions with their replacement date and reason so operators do not follow conflicting configurations.
Operational checklist
Turn the successful experiment into a short procedure covering owner, safe configuration, limits, and stop conditions. Every run needs a terminal status. After browser, library, or network changes, run a small control before the main queue.
- Protocol version is named
- Client capabilities are verified
- DNS path is explicit
- Proxy and origin codes differ
- The first test is minimal
- Unsupported features are not promised
Sources
This WorldProxy article is original. Links point to the primary documents used for fact checking.
Choose a proxy for your workflow
Compare proxy families and browse all countries. Availability and price are checked before an item enters the cart.