5 Causes for Incomplete or Partial Downloads
Incomplete or partial downloads occur when a client is in the process of downloading a file and the connection gets interrupted, thus resulting in an incomplete download of a file. Typically, this occurs due to a connection error on the client side although it can also happen for a few other reasons which we'll explore in this article. Apart from identifying possible causes, we'll also discuss how certain browsers handle partial downloads and how to resume them once the issue has been resolved.
Causes for partial downloads
There are a few reasons why a partial or incomplete download may occur. Depending on the issue, you may not be able to resolve it on your side, as a client, and vice-versa for server administrators.
- Loss of Internet connection: This is one of the most common causes for partial downloads. The loss of Internet connection will automatically cause a download to be incomplete. Certain browsers allow you to resume incomplete downloads however this must also be supported by the web server.
- File has moved or is removed on the server side: If a client is in the process of downloading a file and the web developer decides to move or remove that file on the web server then this will also cause an incomplete download for the client. In this case, the client will need to reinitiate the download once the file has been moved to the new location.
- Incomplete source file: In certain cases, an incomplete file may have been mistakenly uploaded to the server. Therefore, when clients try to download the file, they will experience a partial download no matter what. In this case, it will be fairly easy for the client to determine whether the issue is on their end or the web server's end.
- Timeouts: Timeouts can be caused either at the client end or the server end. If your internet connection is slow or the server is being overloaded with requests, timeouts can occur and thus cause incomplete downloads.
- Incomplete proxy downloads: If a web developer is using a proxy service or a CDN then this introduces an additional aspect to consider when trying to determine what is causing the partial download. For example, in the event that the proxy or CDN fetched the file from the origin, however, was not able to complete the download (for whatever reason) then the proxy or CDN will deliver said incomplete file from cache to the client. This will occur until the proxy or CDN has been purged and the download is able to fully complete during the next fetch attempt.
Resuming partial downloads
Some browsers are better suited for resuming partial downloads than others. In any case, we've listed three browsers below that allow you to resume partial downloads either via a plugin, a partial file, or by using a combination of techniques.
- Firefox: Firefox is probably the best browser in terms of resuming partial downloads. An extension called Download Star allows a download to resume if you run into one of the issues mentioned above.
- Internet Explorer: IE takes a different approach and generates a partial file in the event that a file is only partially downloaded. When a partial file is created, all you need to do is double-click the file and click the resume button to continue downloading the file.
- Chrome: Chrome doesn't offer any sort of download resuming feature. There is a workaround involving taking the partially downloaded file from Chrome and resuming it in Firefox although it does require a few steps. This tutorial explains more about how to resume a download using Chrome.
Analyzing partial downloads with KeyCDN
As a web developer, if you need to further analyze the partial downloads that are occurring on your site you should always look to the logs for more information. The same goes for further analyzing partial or incomplete downloads via KeyCDN.
If you require more information, enable our log forwarding feature to enable Syslog to receive your raw logs in real time. With this information, you'll be able to more accurately determine the number of partial downloads by analyzing the 206
HTTP status codes, see how many bytes were sent, and more. Visit our raw log format page to learn more about the types of log fields which are displayed. An example log entry of a partial content response would look like the following (note the 206
HTTP status):
1407961382.123|usla|111.111.111.111|206|253061|uid1234|zid4321|example-hexid.kxcdn.com|HIT|"GET /lorem.jpg HTTP/1.1"|[13/Aug/2014:22:23:02 +0200]|"http://www.yourwebsite.com"|"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0"|http|US|United States|San Diego|CA|39.0437|-77.4875|"AS14618 Amazon.com, Inc."
Summary
With Internet speeds these days, partial or incomplete downloads aren't as big of a problem they used to be. If an interruption occurs, in most cases it's fine to just restart the download. However, if the file is very large or if your Internet connection is slow or spotty, it might be useful to use a web browser that supports partial file resumption.