- nginx
- Serves it, 206. nginx compares only the range payload against the content length, so a set summing to exactly the file size is served and its own ~110-byte-per-part framing then pushes the response past it. Measured on 1.26.3 against a 100,000-byte file: 100 overlapping 1000-byte ranges return 206 with a 110,517-byte body; 1000 one-byte ranges return 105,808; 8000 return 861,808. It is unbounded — amplification grows linearly with header length.
- xin
- A response is never larger than the resource it ranges over. Where the multipart framing alone would exceed the file, xin sends 200 with the whole file instead.
- why
- This is the divergence xin is most confident about. The cost is exactly one odd case — two ranges of a 100-byte file arrive as a 200 — and exempting small files would mean picking a byte threshold below which amplification “does not count”. A
Range header naming more than 4096 satisfiable ranges declines to the whole file for the same reason.