The Range HTTP header lets a client request selected bytes instead of downloading an entire resource. During a large-file download, recording the local file size and requesting bytes from that offset avoids restarting after a network timeout. section 11.1.2
Resume a timed-out download in Go
Create a GET request, inspect the destination file, and set `Range` when existing data is present: `req.Header.Set("Range", "bytes="+start+"-")`. Send the request with an HTTP client configured for a five-minute timeout, retry timed-out requests while retries remain, and append the resumed response to the local file. The surrounding program retries up to 100 times and reports the final byte count. A final hash check can strengthen integrity assurance.
