А что, пока браузер не отдаст серваку весь запрос с заголовком и телом, скрипт рази запустится? А как же ограничение по времени работы скрипта (ну допустим 30 сек.), а файл грузится минуты три. И ничего. Ну пускай он запускается (скрипт), узнает скорость закачки, узнает время требуемое для этого, кому он это сообщит. Браузер получит ответ от сервака только отправив запрос (в теле которого большой и толстый закачиваемый файл) целиком. До этого он ничего не принимает.
Это исходя из логики работы протокола HTTP.