Это связано с тем, что HTTP-сервер не отправляет заголовок Content-Length с ответом. Таким образом, клиент не знает заранее, как долго файл находится, и должен предположить, что он заканчивается, когда соединение закрывается сервером, с побочным эффектом, что, если соединение преждевременно падает, вы в конечном итоге неполная загрузка, не зная об этом.
Это звучит не очень хорошо, но на самом деле это обычная практика в Интернете, особенно для динамического контента, генерируемого скриптами.